精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

遷移 Eureka 到 Nacos 之雙注冊雙訂閱模式

開發 前端
Eureka 1.x 的架構有些地方可以改進,比如 在客戶端的 pull 模式下,增加這個消息推送模式,增加實時性;還有 集群,Eureka 只支持 AP ,各個客戶端都能進行寫請求 , 沒有主從節點之分,各個節點之間通過相互復制來同步數據,無法保證一致性。Nacos 則有 AP 和 CP 兩種選擇,更靈活。

這里面涉及到這個 雙注冊雙訂閱模式 ,下面讓我們一起看看吧!

內容概覽

首先,為啥要遷移呢?

主要是它對比其他注冊中心,已經落后太多了。

  • 就拿 Nacos 來說吧,不僅有 配置中心,管理界面,還能手動上下線,而且支持服務列表變更的消息推送模式(實時性高)。
  • Eureka 1.x 的架構有些地方可以改進,比如 在客戶端的 pull 模式下,增加這個消息推送模式,增加實時性;還有 集群,Eureka 只支持 AP ,各個客戶端都能進行寫請求 , 沒有主從節點之分,各個節點之間通過相互復制來同步數據,無法保證一致性。Nacos 則有 AP 和 CP 兩種選擇,更靈活。
  • 2019年的某個會上,Spring 團隊提出如何解決 Netflix 進入維護模式后的 SpringCLoud 組件選擇問題。
  • 就是 Eureka 早已進入維護模式啦!而且 long long ago ,官方就放棄了這個 Eureka2.X 版本的開發(看了下分支,6,7年前的代碼了),而且官方還說了不能用在生產上,后果自負(咱也不知道它有啥新特點,反正 SpringCloud 一直用的 1.x 版本。現在更新到1.10 了)。

官方Wiki

Eureka 最新版本

簡單了解了這個背景后,咱們再來看看 4ye 搭建的這個 demo 。

Eureka 注冊中心

比如 老項目中,使用的注冊中心是 Eureka 。架構如下:

代碼也很簡單,有三個模塊。分別是

  • 注冊中心 :搭建時選擇 Eureka Server 即可。
  • 服務提供者(provider):搭建時選擇 Eureka Discovery Client 和 Spring Web 即可。
  • 服務消費者(consumer):搭建時選擇 Eureka Discovery Client 和 Spring Web 即可。

然后依次啟動注冊中心,provider,consumer 即可。

訪問 http://localhost:8772/hello/Java4ye 可以看到下面的內容。

雙注冊雙訂閱模式

接著,我們克隆上面的 provider 和 consumer 模塊。

在 pom 文件中直接加入 Nacos 和 Eureka 。

啟動時會拋出下面的異常信息 。(引入 Actuator 時會出現另一個,同樣排除掉即可)

Description:

Field autoServiceRegistration in org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration required a single bean, but 2 were found:
- nacosAutoServiceRegistration: defined by method 'nacosAutoServiceRegistration' in class path resource [com/alibaba/cloud/nacos/registry/NacosServiceRegistryAutoConfiguration.class]
- eurekaAutoServiceRegistration: defined by method 'eurekaAutoServiceRegistration' in class path resource [org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.class]

可以看到是自動裝配時,不知道用哪個導致的異常。但是我們兩個都要。

這里只要在 application.properties 中把這個自動裝配移除掉即可。

# 雙注冊模式下關閉
spring.autoconfigure.exclude=org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration,org.springframework.cloud.client.serviceregistry.ServiceRegistryAutoConfiguration

當然,秉著嚴謹的態度,我們在這兩個類中打入相應的斷點,可以看到他們都被創建了。

同時,也成功注冊到這兩個注冊中心去了。

Eureka

Nacos

這個時候,再次訪問舊的客戶端 8772 端口的,可以發現如下效果。

但是要注意,此時項目的架構變成這樣,consumer 中只有 Eureka 的客戶端,所以調用到的都是 Eureka 中心中的服務。此時流量不會走到 Nacos 這邊

接著便是看客戶端 consumer 正不正常,比如跑個一天看看。

穩定后,下一步就是 下線這個 provider ,然后看看正不正常了。同樣穩定后,便是準備啟動這個 雙訂閱的客戶端了。

小實驗

但是我這里做了一個小實驗 哈哈 想看看不下線的情況,我這個 新客戶端 上線后是使用哪個注冊中心的服務多點。

所以,接著,我們就啟動這個新的 consumer,一個雙訂閱的客戶端。

同樣修改下配置文件即可。

spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
# Nacos 服務發現與注冊配置,其中子屬性 server-addr 指定 Nacos 服務器主機和端口
spring.cloud.nacos.discovery.server-addr=192.168.175.128:8848
# 注冊到 nacos 的指定 namespace,默認為 public
spring.cloud.nacos.discovery.namespace=public

# 雙注冊模式下關閉
spring.autoconfigure.exclude=org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration,org.springframework.cloud.client.serviceregistry.ServiceRegistryAutoConfiguration

這個時候,我們訪問新的客戶端。8872 端口的:http://localhost:8872/hello/Java4ye

發現無論怎么刷新,接口的返回值都是下面這個,無法達到負載均衡的效果 。(⊙o⊙)?

簡單翻看了下源碼,可以發現系統創建了三個 discoveryClient ,最后一個是兜底用的。

而且 nacos 排在第一個,這意味著從 nacos 的注冊中心中找到服務的話,就不會調用到 Eureka 中的了。

了解了這個原理后,將 nacos 中的服務進行下線。

然后去刷新新的客戶端,8872 端口的,可以發現,又出現了負載均衡的效果了。

而且得益于 Nacos 的服務列表變更推送機制,我們客戶端可以實時感知到 服務列表的 變化,這個時候直接去刷新新客戶端的接口,可以發現它已經切換到 Eureka 中了,沒有延遲感!

所以當我們在遷移的過程中,如果發現 Nacso 上新的 provider 有什么異常時,可以將其下線先?? 輕輕一點真的太方便了。

優雅下線

結束上面的小實驗,回到正常流程中,我們要來下線這個 provider 了。

階段目標

這里就得考慮這個 優雅下線 的問題了。

網上的方案很多,這里用 Springboot 的 actuator 來實現。

這個 graceful 配置是 Springboot2.3 之后才有的,會讓內嵌服務器拒絕外部請求,然后處理完已經在內部的請求后,進入關閉狀態。

通過這個暴露的 api,去修改 eureka 中 service 的狀態。

# 優雅下線
server.shutdown=graceful
# 關閉超時
spring.lifecycle.timeout-per-shutdown-phase=20s

#
management.endpoints.web.exposure.include= service-registry

這里直接訪問 curl "localhost:8771/actuator" 來獲取我們注冊的這個 API (可以看到我們 - 符號被吃掉了 坑??)

接著,我們通過這串請求,改變 Eureka 中服務的狀態:DOWN。

curl -X "POST" "http://localhost:8771/actuator/serviceregistry?status=down" -H "Content-Type: application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"

然后,在等待若干時間后,應該是客戶端 consumer 重新去拉取服務列表信息后。(哈哈 我沒數)。

不過我配了 10s ,然后我們不斷刷新請求,會發現這個負載均衡的效果已經消失了。只剩新的 provider 提供的服務了。

然后在服務穩定一段時間后,可以通過 Prometheus 來觀察這個舊的 provider 的 qps 等,當它已經沒有啥流量進入了,便可以直接關閉下線了。( kill -9)

上線雙訂閱客戶端

接著,上線這個 新的 consumer ,這里也沒啥特別的了。

同樣等系統穩定后,下線這個舊的客戶端 consumer 了。

而且從上面小實驗環節中,我們可以知道流量會先來到這個 Nacos 中,確認里面沒有這個服務的話,才去這個 Eureka 中查找。所以到這里,這個 Eureka 中的流量就會少了大部分了。

再次上線

到了這里,我們還不能直接關閉這個 Eureka,還得再次上線新版本的只有 Nacos 注冊中心的 provider 和 consumer 。

這次的新版要注意這個負載均衡,我們去掉了 Netflix 后,得手動引入 SpringCloud 的 loadbalancer 組件。其他也就刪刪配置了。

同樣的,穩定后,才去下線雙訂閱客戶端 consumer,再下線雙注冊服務端 Provider,最后才下線這個 Eureka。 

這里通過 Nginx 等去控制流量,將他們打到新的只訂閱 Nacos 的 consumer 上,最后等雙訂閱的 consumer 客戶端沒啥流量就給它下線了。

接著,在 Nacos 上 ,下線那個雙注冊的服務,然后再去下線它。

最后就直接關閉 Eureka 了。

這樣就完成了這個注冊中心的遷移了。

整體流程

這里其實就是上線新版本后,等其穩定,下線舊版本的一個規則。

看著挺繁瑣的

關于應用的發布,這里就不多贅述了,網上大把的 藍綠發布,灰度發布,還有 K8s 的 pod 容器,docker 等環境下的決策。

最后

https://github.com/Java4ye/springcloud-alibaba-demo-4ye

整個demo 我也弄到 GitHub 上啦,新開的坑, 哈哈,后面也會逐步完善的。

覺得不錯的話,可以 Star 支持一波哦!

總結

通過本案例,可以快速了解到這個遷移過程中:

  • 這個代碼基本都沒改!這得益于這個 SpringCloud 的統一服務注冊和發現的編程模型。
  • 使用雙注冊雙訂閱模型時,要排除掉自動裝配的坑,而且在這個模式下,流量基本都跑到 Nacos 這邊。
  • 對比下兩個注冊中心,更能感覺到 Nacos 這么多便利的功能:上下線和服務列表變化的推送機制。
  • 了解到 Springboot 在優雅下線這一塊做的變化,謹記不要輕易 kill -9!
責任編輯:武曉燕 來源: Java4ye
相關推薦

2020-06-29 07:58:18

ZooKeeperConsul 注冊中心

2021-08-04 11:54:25

Nacos注冊中心設計

2021-08-12 06:52:01

Nacos服務機制

2023-04-28 07:52:14

CAPEureka注冊中心

2021-07-15 06:43:12

Python數據結構

2013-11-12 16:38:22

2022-05-14 22:27:40

Nacos訂閱機制定時器

2017-07-03 08:29:42

Spring Clou服務詳解

2009-11-05 10:07:37

WCF設計模式

2011-04-01 16:24:31

策略路由路由器

2022-05-19 07:39:43

Nacos訂閱機制線程類

2011-04-01 16:28:59

策略路由

2009-11-04 09:34:28

互聯網接入

2010-08-06 13:37:18

思科路由器雙地址雙出口

2012-06-26 11:23:40

Chrome瀏覽器

2012-02-16 13:24:21

雙棧IPv4IPv6

2021-05-28 06:19:22

ZooKeeperConsulNacos

2020-11-27 10:33:06

5G4G網絡

2016-12-06 15:35:25

2009-08-12 17:43:54

雙括弧Java語法技巧
點贊
收藏

51CTO技術棧公眾號

午夜欧美性电影| 日产精品久久久一区二区福利| 麻豆传媒在线看| xxxx另类黑人| 国产精品无码永久免费888| 91老司机在线| 久久国产黄色片| 香港欧美日韩三级黄色一级电影网站| 精品国产欧美一区二区| 国产一级不卡毛片| 密臀av在线| 中文av一区二区| 国产欧美日韩一区| 亚洲午夜无码久久久久| 黄色欧美日韩| 最新中文字幕亚洲| 日本一区二区在线免费观看| 欧美亚洲人成在线| 香蕉影视欧美成人| 中文字幕一区二区三区最新| 午夜视频福利在线观看| 国产午夜福利片| 欧美亚洲二区| 一本久道中文字幕精品亚洲嫩| 在线成人av电影| 青青青手机在线视频观看| 国产一区不卡精品| 国产99久久久欧美黑人| av资源吧首页| 欧美在线首页| 久久午夜a级毛片| 午夜精产品一区二区在线观看的| 国产成人一二片| 制服丝袜av成人在线看| 免费日韩视频在线观看| 国产色播av在线| 一区二区三区产品免费精品久久75| 亚洲不卡一卡2卡三卡4卡5卡精品| 精品久久人妻av中文字幕| 日本伊人色综合网| 国产成人午夜视频网址| 国产乱国产乱老熟| aa亚洲婷婷| 久久久久久久久亚洲| 波多野结衣爱爱视频| 久久美女视频| 这里精品视频免费| 日韩黄色中文字幕| 欧美少妇性xxxx| 国产亚洲xxx| 妺妺窝人体色WWW精品| 亚洲精品国产动漫| 亚洲精品视频久久| 亚洲a v网站| 波多野结衣在线播放一区| 亚洲国产精品999| 欧美日韩人妻精品一区在线| 成人三级毛片| 日韩精品福利在线| 一区二区三区免费在线观看视频| 日韩高清一级| 亚洲欧洲一区二区三区久久| 69精品无码成人久久久久久| 日本a口亚洲| 日日狠狠久久偷偷四色综合免费| www.4hu95.com四虎| 日本欧美视频| xvideos成人免费中文版| 国产日产精品一区二区三区的介绍| 久久久久久久久丰满| 久久亚洲精品小早川怜子66| 午夜少妇久久久久久久久| 欧美1区2区| 777精品视频| 亚洲综合久久网| 美女看a上一区| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 无码人妻av免费一区二区三区| 国产精品嫩草99av在线| 国产成人精品av在线| 中文字幕人妻色偷偷久久| 激情欧美一区二区三区在线观看| 亚洲直播在线一区| 五月天婷婷在线播放| 国产视频在线观看一区二区三区| 中文字幕日韩一区二区三区不卡| 波多野结衣乳巨码无在线观看| 欧美性猛交xxxxx免费看| 91制片厂毛片| 999久久久精品一区二区| 亚洲欧美一区二区三区久久 | 色久视频在线播放| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美激情一区二区三区成人| 成年人视频在线免费看| 久久精品久久久精品美女| 粉嫩精品一区二区三区在线观看| 免费一级在线观看| 一区二区在线观看免费| 黄色片久久久久| 亚洲精品在线a| 亚洲图片在区色| 九九热精品免费视频| 麻豆9191精品国产| 91精品网站| av在线天堂| 狠狠爱在线视频一区| 国内av一区二区| 亚洲资源网你懂的| 欧美精品999| 97caocao| 国产亚洲欧美一区在线观看| 免费特级黄色片| 日本成人一区二区| 亚洲精品视频久久| 日韩黄色三级视频| 国产一区二区三区综合| 日韩精品在在线一区二区中文| 免费电影网站在线视频观看福利| 欧美日韩国产综合一区二区| 日本网站在线看| 日韩电影免费网站| 欧美综合在线第二页| 亚洲经典一区二区三区| 亚洲人成网站在线| 手机看片一级片| 国产欧美日韩在线一区二区| 91福利视频网| 人妻少妇精品无码专区| 亚洲精品免费视频| 亚洲午夜激情影院| 日韩欧美字幕| 国产精品夜间视频香蕉| 欧美美女搞黄| 色香色香欲天天天影视综合网| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 亚洲一卡二卡| 成人交换视频| 国产一区二区av| 成年人晚上看的视频| 久久久久九九视频| 97在线播放视频| 妖精一区二区三区精品视频| 97超级碰碰碰久久久| 日本人妻丰满熟妇久久久久久| 一区二区三区欧美视频| 99久久综合网| 亚洲视频观看| 国产一区二区三区av在线| 国产又色又爽又黄刺激在线视频| 日韩午夜在线观看| 久久久久香蕉视频| 成人动漫中文字幕| 欧美爱爱视频免费看| 欧美深夜视频| 欧美怡春院一区二区三区| 偷拍25位美女撒尿视频在线观看| 精品人伦一区二区三区蜜桃免费| 欧美大片免费播放器| 乱码第一页成人| 亚洲精品第一区二区三区| 91亚洲精品| 久久久精品2019中文字幕神马| 国产乱淫a∨片免费视频| 亚洲精品成人在线| 中文在线观看免费视频| 国产亚洲网站| 青青草原成人| 成人自拍视频| 性欧美暴力猛交69hd| 三级毛片在线免费看| 欧美性受极品xxxx喷水| 日韩福利小视频| 成人aa视频在线观看| 国产精品宾馆在线精品酒店| 精品国内自产拍在线观看视频| 成人免费激情视频| 91禁在线看| 中文字幕欧美日韩| www.久久精品.com| 日韩欧美极品在线观看| 战狼4完整免费观看在线播放版| 国产一区在线视频| 欧美日本视频在线观看| 日韩免费在线| 国产精品久久亚洲| 日本美女久久| 欧美激情一级精品国产| 国产对白叫床清晰在线播放| 欧美一区二区三区视频在线观看| 日本高清www免费视频| 中文字幕av在线一区二区三区| 少妇性l交大片7724com| 欧美专区18| 国产在线拍揄自揄拍无码| 色爱综合av| 91亚洲永久免费精品| 国产免费拔擦拔擦8x在线播放 | 欧美精品一区二区三区很污很色的 | 欧美极品日韩| 国产精品一区二区三区四区在线观看 | 成人h精品动漫一区二区三区| 一路向西2在线观看| 亚洲黄色在线| 老汉色影院首页| 欧美一区三区| 久久国产手机看片| 深夜激情久久| 国产精品视频久久| 松下纱荣子在线观看| 九九精品在线视频| a天堂中文在线| 亚洲精品自拍第一页| 超碰人人人人人人| 欧美日韩二区三区| 精品国产xxx| 亚洲成av人片| 丁香花五月激情| 国产精品二三区| 麻豆精品免费视频| av亚洲精华国产精华精| 免费黄视频在线观看| 六月丁香综合在线视频| 国产成人av影视| 亚欧美中日韩视频| 大伊香蕉精品视频在线| 欧美激情麻豆| 成人在线观看www| 91亚洲国产成人久久精品| 欧美精品亚洲精品| 台湾佬综合网| 久久久久一区二区| 久久99偷拍| 国产精品免费在线播放| 香蕉免费一区二区三区在线观看| 91麻豆国产精品| 91麻豆精品国产综合久久久| 国产精品入口免费视| 欧美三区四区| 国产精品成人av在线| 成人性生活视频| 国产成人高潮免费观看精品| xxxxx性欧美特大| 日韩美女视频在线观看| 欧美国产大片| 国产精品成人品| yw.尤物在线精品视频| 国产精品精品视频| 成人在线免费电影网站| 国产精品视频一| 涩涩涩久久久成人精品| 成人黄色网免费| 日本在线视频一区二区三区| av色综合网| 伦理一区二区三区| 精选一区二区三区四区五区| 亚洲人成网站77777在线观看| 裸模一区二区三区免费| 国产不卡av一区二区| 日韩精品大片| 911精品美国片911久久久| 国产精品一区在线免费观看| 狠狠综合久久| 欧美黄色免费影院| 日韩成人精品视频| 亚洲一区精品视频在线观看| 国产九色精品成人porny| 人妻激情偷乱频一区二区三区| www国产精品av| 日韩欧美黄色网址| 亚洲日本青草视频在线怡红院| 精品99在线观看| 欧美日韩国产一区中文午夜| 中文字幕免费高清网站| 3atv一区二区三区| 国产 日韩 欧美 精品| 亚洲欧美精品中文字幕在线| eeuss影院www在线观看| 欧美高清自拍一区| 色老太综合网| 成人在线一区二区| 欧美三级午夜理伦三级小说| 亚洲精品日韩在线观看| 国产精品av一区二区| 97成人在线观看视频| 麻豆freexxxx性91精品| 人妻激情偷乱频一区二区三区| 国产亚洲成av人在线观看导航 | 午夜精品久久久久久久99樱桃| 在线免费观看av网址| 日韩午夜小视频| jizz在线免费观看| 欧美激情亚洲视频| 日韩一级二级| 国偷自产av一区二区三区小尤奈| 成人一区而且| 欧美 日韩 亚洲 一区| 久久99久久99| 亚洲国产无码精品| 亚洲精品中文字幕在线观看| www.国产一区二区| 精品国产一区二区三区四区四| 东凛在线观看| 98精品国产高清在线xxxx天堂| 日韩成人一区| 美乳视频一区二区| 午夜久久一区| 视频在线观看免费高清| 99国产精品久| 国产在线视频99| 91精品国产综合久久小美女 | 欧美高清视频在线观看| 国产91精品在线| 欧美日韩喷水| 亚洲美女少妇无套啪啪呻吟| av在线网站免费观看| 国产精品每日更新| 天天干天天操天天操| 亚洲国产精久久久久久| 青青草原av在线| 91久久国产自产拍夜夜嗨| 日本一区二区三区视频| 黑人糟蹋人妻hd中文字幕| 成人精品国产福利| 精品少妇久久久| 日韩精品一区二区三区视频| 免费在线观看av| 国产欧美久久久久久| 欧美在线观看视频一区| 国产在线观看福利| 91看片淫黄大片一级在线观看| 日本熟妇色xxxxx日本免费看| 日韩欧美国产三级电影视频| 精品欧美色视频网站在线观看| 国产精品免费久久久久久| 国产欧美高清视频在线| 久久久久久久久久久免费视频| 99综合电影在线视频| 久久久国产成人| 日韩一区二区三区精品视频 | 亚洲综合一区二区| 午夜精品久久久久久久96蜜桃 | 麻豆changesxxx国产| 日韩欧美国产综合| 天堂av最新在线| 99久热re在线精品视频| 欧美日韩国产一区精品一区| 又大又长粗又爽又黄少妇视频| 一区二区三区加勒比av| 人人妻人人澡人人爽久久av| 97在线观看视频国产| 欧美亚洲tv| 国产精品wwwww| 日本一区二区久久| 中文字幕第315页| 久久手机精品视频| 天堂精品在线视频| 国产3p露脸普通话对白| 26uuu精品一区二区| 男人天堂av在线播放| 一区二区亚洲精品国产| 日本成人一区二区| www.av91| 久久亚洲春色中文字幕久久久| 一区二区视频网站| 欧美成人一区在线| 欧美人成在线观看ccc36| 北条麻妃在线视频| 亚洲人123区| 无码国精品一区二区免费蜜桃| 热久久美女精品天天吊色| 清纯唯美综合亚洲| 人妻换人妻a片爽麻豆| 色综合久久六月婷婷中文字幕| 成年人视频在线免费观看| 91九色精品视频| 99国产精品久久久久久久成人热 | 亚洲午夜久久久| 天堂а√在线8种子蜜桃视频| 国产精品人人做人人爽| 艳女tv在线观看国产一区| 在线看黄色的网站| 欧美影片第一页| 丝袜美女在线观看| 日韩av大全| 成人免费视频一区| 国产情侣免费视频| 欧美黄色成人网| 国产欧美日韩精品一区二区免费| 欧美日韩久久婷婷| 欧美日韩中文字幕日韩欧美| 乱人伦中文视频在线| 久久av一区二区| 国产一区二区三区黄视频| 欧美videossex极品| 欧美成年人视频网站欧美| 欧美日韩爱爱| 又大又长粗又爽又黄少妇视频| 欧美色综合久久| 亚洲啊v在线|