成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

存在多個不同注冊中心的時候,如何平滑的統一注冊中心?

開發 開發工具
只要是Spring Cloud構建的業務服務,那么就只需要逐步的更換注冊中心的依賴,就能輕松的把原本處于不同注冊中心下的服務,轉移到同一注冊中心下的服務了。

[[401960]]

本文轉載自微信公眾號「程序猿DD」,作者翟永超。轉載本文請聯系程序猿DD公眾號。

這幾天在不同的微信群和社區里連續碰到了一類問題:

比如spring4all的帖子:http://bbs.spring4all.com/thread/21

又比如昨天在秦總的群里也進行了類似的討論。

雖然描述不同,但核心都圍繞著一個問題:多個不同注冊中心下的服務治理問題!下面就針對這個問題,展開說說我的思考、實踐與建議吧。

為什么會有這樣的場景?

先來說說背景問題,有的群友在看到這類問題的時候,第一反應就是怎么用多個注冊中心,是不是蛋疼了瞎搞的?

顯然有點腦子的人都不會這樣做!那么為什么會存在這樣的場景呢,通常都是這樣演變而來的:

  1. 缺少統一的基礎技術平臺管理,幾乎所有做大的企業都會碰到這樣的問題。為了業務野蠻發展的時期,技術團隊是很少有精力去做這些治理的,通過系統邊界劃分好之后,因為系統與系統間的交互通過協議定義規范就好,每個系統內部的技術棧根據團隊特性選擇自己最擅長的就行,并不需要去統一就能又好又快的去完成各個系統的建設。所以,不同的系統選擇不同的注冊中心來治理自己的服務,并沒有什么不妥。
  2. 隨著業務的發展,業務需要調整,架構需要進化,復雜的系統關系(以往我們自己開發的系統,并購進來的系統,外部采購的系統)需要被重建。不論是以微服務的方式,還是中臺的方式去重新劃分系統邊界,勢必要對現有服務做重新規劃與治理。
  3. 由于系統復雜,我們沒法一步就位,只能一點點的往改造目標去轉變。勢必會存在一個新老共存,逐步轉化的演進過程。為了能夠平滑的過渡改造的過程,我們第一個想到的就是先把服務治理統一起來,讓所有內部服務都可以簡單和便捷的發現彼此并能夠互相調用。同時,多種多樣的注冊中心造成的運維復雜度也能通過統一服務治理體系得以解決。

于是,這就有了文首大家討論的這種場景。所以,這是一個架構演進的過程產物,并不是因為設計不好,才出來的怪胎架構。

兩種統一服務治理的思路

方案一:在業務服務端,實現多注冊中心的注冊與發現

這種方式就是文首,大家所提問題的方案,實現這種方案涉及幾點核心問題的解決:

  1. 服務注冊的擴展:我們知道Spring Cloud的注冊機制是對單注冊中心的,同時配套的發現也一樣。我們并不能通過多配置一套服務發現接口的實現來實現多注冊中心的實現。所以,你需要以一套主注冊中心為Spring Cloud自身的Bean實現,外圍需要另外去學多套(根據注冊中心數量)注冊客戶端的實現。
  2. 服務發現的擴展:對于非主注冊中心的注冊操作實現了一套,那么發現機制也要實現一套。同時,因為這里的服務發現,并不與Spring Cloud的服務發現機制綁定,所以這些服務并不會進入到Spring Cloud配置的注冊中心下的ServiceList和對應的ServerList里。所以在服務發現模塊,需要自己把這些外部注冊中心獲取的服務和實例加入到主注冊中心下的ServiceList和ServerList里。

同時,這里需要注意的幾個點:

  • 因為業務服務往每個注冊中心里都注冊了,所以在發現的時候,是會有重疊的,這里要做好去重。
  • 對于服務名稱的管理也需要防重,不同系統下有一些諸如用戶中心之類的服務命名是很容易沖突的,可以用系統編碼做前綴來加工服務名,以保證融合后不存在重復的出現。

通過這樣一頓操作,每個業務服務與所有注冊中心都建立了聯系,原本處于不同系統的各種服務也都能互相發現并實現互相調用了。

方案二:在各個注冊中心之間,實現服務數據的同步

這種方法是新建一個注冊中心同步的服務,它的任務很簡單,就是把每個注冊中心上的服務信息同步到其他注冊中心上,同時監聽每個注冊中心的變化以保持所有不同注冊中間都包含了所有系統下的服務。

在這種情況下,只要是Spring Cloud構建的業務服務,那么就只需要逐步的更換注冊中心的依賴,就能輕松的把原本處于不同注冊中心下的服務,轉移到同一注冊中心下的服務了。

兩種思路的優缺點比較

上面所述兩種方案的大致優缺點如下:

  方案一 方案二
優點 不需增加部署成本 業務服務侵入性小
缺點 業務服務侵入性大 需要增加部署成本

當然,對于方案二也會有一些復雜情況,如果對注冊過程有一些特殊定制的,會需要做一些擴展兼容。但比起方案一的改造程度來說,在業務應用側的邏輯復雜度植入是非常小的。

同時,因為要統一服務治理,那么事后最終狀態往往就是只保留最后想要集中維護的注冊中心的。這個時候。如果采用第一種方案,那么勢必還要去重新調整注冊與發現機制,將要淘汰的注冊與發現邏輯去除,又是一件比較復雜的事情。

所以,綜合比較這兩種方法方法來說。個人認為采用方案二,同步注冊中心的數據來完成統一服務治理的任務,要比方案一更加穩妥,對于業務開發的影響面最小。雖然會引入一些部署成本,但這些成本對于一個多系統的基礎下,那是微乎其微的。

原文鏈接:https://mp.weixin.qq.com/s/7_K7-vw2Yu7ByjyqGcLGYw

 

責任編輯:武曉燕 來源: 程序猿DD
相關推薦

2024-11-08 13:39:49

JavaScript注冊中心語言

2023-12-21 08:35:30

注冊中心EurakaEtcd

2022-08-30 22:12:19

Nacos組件服務注冊

2025-01-16 00:20:41

2022-07-26 08:14:16

注冊中心ProviderConsumer

2024-12-27 00:37:46

2022-08-26 01:46:33

注冊中心NacosDNS

2024-03-18 08:50:20

分布式系統機制

2022-04-27 20:02:22

Dubbo注冊中心開發

2021-08-04 11:54:25

Nacos注冊中心設計

2025-03-31 08:35:00

Eureka微服務架構

2024-04-10 12:22:19

DubboNacos微服務

2024-12-03 10:55:56

微服務架構注冊中心

2022-02-10 20:09:24

Dubbo源碼Provider

2023-10-30 09:35:01

注冊中心微服務

2022-04-05 13:10:15

consul分布式高可用

2023-01-30 22:43:39

DubboZooKeeper

2021-01-07 09:56:26

FormatterSpringFormatterRe

2020-01-10 10:58:34

ZooKeeperEureka注冊中心

2023-02-26 00:00:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人精品在线 | 欧美日韩福利 | 国产一区二区三区四区五区加勒比 | 亚洲一区亚洲二区 | 国产综合网址 | 欧美激情 一区 | 欧美 日本 国产 | 福利久久 | gav成人免费播放视频 | 久久精品aaa | 欧美中文视频 | 新超碰97 | 欧美老少妇一级特黄一片 | 国产黄色一级电影 | 亚洲一区二区国产 | 麻豆毛片 | 亚洲v日韩v综合v精品v | 亚洲高清在线 | 亚洲激情综合 | 国产成人久久精品一区二区三区 | 日本成人免费网站 | 亚洲一区二区三区观看 | 亚洲福利在线视频 | 精品一区二区三区中文字幕 | 视频在线一区 | 亚洲精品一区二区三区四区高清 | 国产精品毛片久久久久久 | 超碰导航| 波多野结衣在线观看一区二区三区 | 一区二区三区四区电影 | 精品一区二区电影 | 国产美女福利在线观看 | 日韩欧美一区二区三区免费观看 | 成人在线免费 | 久久久久国产成人精品亚洲午夜 | 一级片aaa | 欧美黄色精品 | 久久久久久国产精品 | 免费一区二区在线观看 | 中文字幕免费视频 | 免费一区二区三区 |