五分鐘了解Consul

2022-02-06 10:54:04 字數 2166 閱讀 7363

我的誕生也和現在網際網路專案的開發模式有關,從之前的三層架構衍化成現在有微服務架構,把原來bll和dal層做事按業務拆成獨立的分布式服務(其實很多人就是把curd放到單獨的服務中而已),為了高可用&高擴充套件,又把這些服務(程序)集群化,就出現一堆的位址和埠。客戶端由原來的程序內呼叫變成跨程序或跨網路呼叫服務,把這些一堆位址和埠放到配置檔案中。這樣做其實沒什麼問題,但維護起來比較麻煩,比如說增加乙個服務,就要修改配置檔案並重啟客戶端,同理,刪掉乙個服務也要同樣的操作。

我的作用主要是管理這些集群服務的配置,整體流程是這樣子的:服務(程序)啟動的時候把服務名和自己的ip、埠通過http告訴我,我將這些資訊記到自己的記憶體**中,客戶端呼叫時帶上要查詢的服務名通過http傳送給我,我再自己的記憶體表中找到叫這服務名的所有配置傳送給客戶端。

平時我還要做一些服務健康檢查的事兒,在上面服務啟動的時候,服務還要給我配置乙個檢查介面和檢查頻率等一些引數,我會按這些引數每隔一段時間,比如10秒鐘去請求一下這個介面,如果不通,我就隔5秒再重試下,如果重試3次還不通,我就認定這個服務掛掉了,就從記憶體**中刪掉這個服務配置,不然客戶端要請求到這個不通服務,我就罪過了。

說了這麼多,還是看下我的整個流程圖吧,一圖勝千言:

最後,再用**實現下吧,語言是c#,其實語言類似,反正都有現成的sdk。

1、vs中建個控制台應用,並通過nuget安裝consul包

2、註冊幾個服務

3、服務發現

2

11 console.readkey();

12 }

13 14 static listfindserviceendpoints(string servicename)

15 );

21 22 var targets = new list();

23 try

24 :").tolist();

30 }

31 catch

32 return targets;

33 }

五分鐘了解CDN

cdn全稱content delivery network,即內容分發網路。其基本思路是盡可能避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快 更穩定。通過在網路各處放置節點伺服器所構成的在現有的網際網路基礎之上的一層智慧型虛擬網路,cdn系統能夠實時地根據網路流量和各節點...

五分鐘了解什麼是Openstack

什麼是openstack openstack是全球雲計算技術專家和開發者為公有雲和私有雲聯合協作完成的開源雲計算平台。這個專案通過實現簡單 超大規模以及特性豐富等特點為所有型別的雲提供解決方案。這項技術包含了很多相關的專案用以為雲基礎架構的解決方案提供各種元件。openstack的幕後英雄 由rac...

五分鐘了解身體作息規律

晚上過了11點還不想睡覺?凌晨一兩點還伏在電腦旁瞪大眼睛?你的身體還承受得住嗎?年輕不是揮霍的資本,12張漫畫讀懂身體的 十二經絡值班表 告訴你如何保養好身體!子時 23 00 1 00膽經值班 膽經進行膽汁的新陳代謝,讓膽汁更加清新。古語說 膽有多清,腦有多清。所以,乾淨的膽汁可以讓人第二天頭腦清...