国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何使用SpringCloud進(jìn)行灰度發(fā)布

Jackwoo / 1021人閱讀

摘要:灰度發(fā)布是指在黑與白之間,能夠平滑過渡的一種發(fā)布方式。如何使用進(jìn)行灰度發(fā)布呢將分一下四步第一,設(shè)置網(wǎng)關(guān)權(quán)重路由設(shè)置中提供了去實(shí)現(xiàn)根據(jù)分組設(shè)置權(quán)重進(jìn)行路由,因此使用起來相對(duì)比較簡(jiǎn)單,有興趣的可以閱讀源碼。

灰度發(fā)布是指在黑與白之間,能夠平滑過渡的一種發(fā)布方式。在其上可以進(jìn)行A/B testing,即讓一部分用戶繼續(xù)用產(chǎn)品特性A,一部分用戶開始用產(chǎn)品特性B,如果用戶對(duì)B沒有什么反對(duì)意見,那么逐步擴(kuò)大范圍,把所有用戶都遷移到B上面來。灰度發(fā)布可以保證整體系統(tǒng)的穩(wěn)定,在初始灰度的時(shí)候就可以發(fā)現(xiàn)、調(diào)整問題,以保證其影響度。

在開發(fā)或者測(cè)試的時(shí)候,或者線上發(fā)布,線上服務(wù)多版本控制的時(shí)候,需要對(duì)服務(wù)提供權(quán)重路由,最常見的使用就是,一個(gè)服務(wù)有兩個(gè)版本,舊版本V1,新版本v2。在線上灰度的時(shí)候,需要通過網(wǎng)關(guān)動(dòng)態(tài)實(shí)時(shí)推送,路由權(quán)重信息。比如95%的流量走服務(wù)v1版本,5%的流量走服務(wù)v2版本。

如何使用SpringCloud進(jìn)行灰度發(fā)布呢?將分一下四步:

第一,設(shè)置網(wǎng)關(guān)權(quán)重路由設(shè)置

Spring Cloud Gateway中提供了org.springframework.cloud.gateway.handler.predicate.WeightRoutePredicateFactory去實(shí)現(xiàn)根據(jù)分組設(shè)置權(quán)重進(jìn)行路由,因此使用起來相對(duì)比較簡(jiǎn)單,有興趣的可以debug閱讀源碼。

我們通過在Spring Cloud Gateway中會(huì)配置不同的權(quán)重信息到不同URL上,Spring Cloud Gateway會(huì)根據(jù)我們配置的路由權(quán)重信息,將請(qǐng)求分發(fā)到不同的源服務(wù)組,權(quán)重信息如ch4/ch4-gateway中的application.yml所示,主要配置信息如下。

spring:

cloud:

gateway:

  discovery:      

    locator:     

      enabled: true

  routes: 

  - id: order-service1

    uri: lb://order/order/create1

    order: 8000

    predicates:

    - Path=/order/create

    filters:

    - StripPrefix=1

    - Weight=order-service, 95

  - id: order-service2

    uri: lb://order/create2

    order: 8000

    predicates:

    - Path=/order/create

    filters:

    - StripPrefix=1

    - Weight=order-service, 5


Weight=order-service1, 95,Weight=service1, 5就是路由的權(quán)重信息。

第二、源服務(wù)配置

源服務(wù)在本案例中為order模塊源服務(wù),主要提提供Gateway Server權(quán)重路由對(duì)應(yīng)的后端源服務(wù)。因?yàn)楸容^簡(jiǎn)單因此不做詳細(xì)說明,主要代碼如下所示。

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class OrderController {

@RequestMapping("/create1")

public String orderCreateV1() {

  //此處寫業(yè)務(wù)邏輯代碼

 return "success";

}

@RequestMapping( "/ceate2")

public String v2() {

 //此處寫業(yè)務(wù)邏輯代碼

 return “success”;

}

}

第三、進(jìn)行測(cè)試

分別啟動(dòng)gateway,order進(jìn)行訪問:http://localhost:5001/order/create 測(cè)試,發(fā)現(xiàn)會(huì)根據(jù)所設(shè)權(quán)重進(jìn)行路由。

第四,使用zookeeper config實(shí)現(xiàn)動(dòng)態(tài)權(quán)重路由

到第三步完成以后,現(xiàn)在可以通過修改配置的如何根據(jù)現(xiàn)有的服務(wù)在線動(dòng)態(tài)更新權(quán)重呢?使用zookeeper作為spring cloud的注冊(cè)和配置中心,gateway模塊和order模塊配置監(jiān)控配置的變化,如果想做動(dòng)態(tài)灰度發(fā)布,增加后臺(tái)在線配置管理界面,并在線修改gateway的配置,實(shí)現(xiàn)動(dòng)態(tài)的灰度發(fā)布,而不用每次修改都要重新啟動(dòng)gateway。

spring:

cloud:

zookeeper:

  enabled: true  

  connect-string: localhost:2181

  config:

    root: /config

    enabled: true

    watcher:

      enabled: true  


第五,使用zkui進(jìn)行配置修改

使用ZKUI來可視化管理Zookeeper,登錄ZKUI->import 選擇對(duì)應(yīng)文件導(dǎo)入即可。ZKUI安裝使用請(qǐng)自行百度。

以上就是我使用spring cloud進(jìn)行灰度發(fā)布的過程記錄。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/72300.html

相關(guān)文章

  • 這款分布式配置中心,會(huì)是微服務(wù)的降維打擊利器嗎?

    摘要:于是,市面上出現(xiàn)了分布式的配置中心。為什么呢因?yàn)橐Y(jié)合分布式配置中心微服務(wù),才能真正實(shí)現(xiàn)我們所理解的。所謂灰度發(fā)布,是說一個(gè)微服務(wù)集群里面,比如有個(gè)訂單系統(tǒng),做了一些配置上的更新。數(shù)人云分布式統(tǒng)一配置中心數(shù)人云分布式統(tǒng)一配置中心,取名。 本文來自1月18日數(shù)人云資深工程師在IT大咖說平臺(tái)的線上直播分享。 今天主要探討這幾方面: 一、配置中心的定位二、云化的微服務(wù)對(duì)于配置中心的要求三、微...

    zhaofeihao 評(píng)論0 收藏0
  • 微服務(wù)化的基石——持續(xù)集成

    摘要:一持續(xù)集成對(duì)于微服務(wù)的意義拆之前要先解決合的問題在很多微服務(wù)化的文章中,很少會(huì)把持續(xù)集成放在第一篇,因?yàn)榇蠖鄶?shù)的文章都會(huì)將如何拆的問題,例如拆的粒度,拆的時(shí)機(jī),拆的方式。二持續(xù)集成就是不斷的嘗試在一起集成就是在一起。 此文已由作者劉超授權(quán)網(wǎng)易云社區(qū)發(fā)布。 歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營(yíng)經(jīng)驗(yàn)。 一、持續(xù)集成對(duì)于微服務(wù)的意義:拆之前要先解決合的問題 在很多微服務(wù)化的文章中,很...

    Yangyang 評(píng)論0 收藏0
  • 微服務(wù)架構(gòu):如何用十步解耦你的系統(tǒng)?

    摘要:導(dǎo)言耦合性,是對(duì)模塊間關(guān)聯(lián)程度的度量。模塊間的耦合度是指模塊之間的依賴關(guān)系,包括控制關(guān)系調(diào)用關(guān)系數(shù)據(jù)傳遞關(guān)系。 導(dǎo)言: 耦合性,是對(duì)模塊間關(guān)聯(lián)程度的度量。耦合的強(qiáng)弱取決于模塊間接口的復(fù)雜性、調(diào)用模塊的方式以及通過界面?zhèn)魉蛿?shù)據(jù)的多少。模塊間的耦合度是指模塊之間的依賴關(guān)系,包括控制關(guān)系、調(diào)用關(guān)系、數(shù)據(jù)傳遞關(guān)系。模塊間聯(lián)系越多,其耦合性越強(qiáng),同時(shí)表明其獨(dú)立性越差。軟件設(shè)計(jì)中通常用耦合度和內(nèi)聚...

    willin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<