F5 對接 Eureka 實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)

作者:F5
時間:2022-09-08
581
本章節(jié)為 F5 現(xiàn)代應(yīng)用網(wǎng)關(guān)系列文章之 Eureka 部分。本次主要分享 MSDA 現(xiàn)代應(yīng)用網(wǎng)關(guān)融合 Eureka 服務(wù)注冊發(fā)現(xiàn)中心,實(shí)現(xiàn)服務(wù)動態(tài)發(fā)現(xiàn);通過這種融合,F(xiàn)5 就充當(dāng)了傳統(tǒng)單體應(yīng)用架構(gòu)與現(xiàn)代分布式應(yīng)用架構(gòu)的鏈接橋梁。


作者:張宇馳,喻純政 

職務(wù):解決方案顧問

公司:F5


本章節(jié)為 F5 現(xiàn)代應(yīng)用網(wǎng)關(guān)系列文章之 Eureka 部分。本次主要分享 MSDA 現(xiàn)代應(yīng)用網(wǎng)關(guān)融合 Eureka 服務(wù)注冊發(fā)現(xiàn)中心,實(shí)現(xiàn)服務(wù)動態(tài)發(fā)現(xiàn);通過這種融合,F(xiàn)5 就充當(dāng)了傳統(tǒng)單體應(yīng)用架構(gòu)與現(xiàn)代分布式應(yīng)用架構(gòu)的鏈接橋梁。



Modern Application


Eureka 簡介

Eureka 是一個由 Netflix 開發(fā)的發(fā)現(xiàn)服務(wù)器。用戶可以通過發(fā)出 REST 請求來注冊服務(wù),取消注冊,以及發(fā)現(xiàn)其他服務(wù)。除此以外,Eureka 還提供負(fù)載均衡的能力。


Eureka 包含兩個組件:Eureka Client 和 Eureka Server。配合用戶的應(yīng)用客戶端、應(yīng)用服務(wù)端一起協(xié)同工作,以達(dá)到服務(wù)注冊及調(diào)用的效果。


Eureka 具體的架構(gòu)圖如下:

Image

圖片來自官網(wǎng)


如圖所示,應(yīng)用服務(wù)會把 IP 地址和端口注冊到 Eureka 上,并通過定時發(fā)送心跳包來告訴 Eureka 自己的健康狀態(tài)。為了防止服務(wù)的消費(fèi)方(圖中的 Application Client)調(diào)用到已經(jīng)下線的服務(wù),應(yīng)用服務(wù)在下線的時候,會給 Eureka 服務(wù)器發(fā)送消息,通知 Eureka 服務(wù)器把自己從服務(wù)列表刪除。服務(wù)的消費(fèi)方會通過查詢 Eureka 服務(wù)器獲取自己想要調(diào)用服務(wù)的具體信息。


當(dāng)獲取到服務(wù)的具體信息后,就會發(fā)送對服務(wù)的直接調(diào)用了。Eureka 服務(wù)器本身也是以集群的方式部署的,不同節(jié)點(diǎn)直接會復(fù)制同步數(shù)據(jù)。


通過這方法,微服務(wù)架構(gòu)中的東西向流量調(diào)用才能有條不紊的進(jìn)行。



Eureka 特性

Image

1
對等通信

Eureka 可以通過集群的方式部署, Eureka Server 利用節(jié)點(diǎn)之間的對等通信機(jī)制,而并非采用常見的選舉機(jī)制,沒有主從節(jié)點(diǎn)之分,每一個節(jié)點(diǎn)的關(guān)系都是平等的。節(jié)點(diǎn)互相通信,交換信息來保持一致,提高了可用性,每個節(jié)點(diǎn)需要添加一個或多個有效的 serviceUrl 指向其他節(jié)點(diǎn)。每個節(jié)點(diǎn)都可被視為其他節(jié)點(diǎn)的副本。


2
故障轉(zhuǎn)移

如果集群中某節(jié)點(diǎn)出現(xiàn)故障,Eureka 客戶端就會自動切換,請求新節(jié)點(diǎn)。故障節(jié)點(diǎn)恢復(fù)后會重新加入集群節(jié)點(diǎn)中。


3
心跳檢測

Eureka 會和注冊的服務(wù)保持心跳檢測,默認(rèn)時間為30秒,如果發(fā)現(xiàn)某服務(wù)不能在30秒發(fā)送心跳信息,并持續(xù)3次(90秒),Eureka 服務(wù)器會下線這個實(shí)例。


4
數(shù)據(jù)一致性

Eureka 等服務(wù)注冊中心的主要使用場景就是分布式、微服務(wù)架構(gòu)。在分布式系統(tǒng)中,一個繞不開的概念就是一致性原則。根據(jù) CAP 理論,我們知道,一個分布式系統(tǒng)在一致性的策略上,最多只能滿足一致性、可用性和分區(qū)容錯性三者中的兩者。


Eureka 在設(shè)計時滿足了可用性和分區(qū)容錯性兩項(xiàng)原則,也就是說,在 Eureka 集群中,只要有一臺 Eureka 能夠正常提供服務(wù),就可以保證注冊服務(wù)可用,但是帶來的后果是 Eureka 會放棄強(qiáng)一致性,但這并不是完全放棄數(shù)據(jù)一致性,數(shù)據(jù)的最終一致性還是可以保障的。


相信通過前幾期的文章,您已經(jīng)了解到不同注冊中心的特點(diǎn)差異了,在一致性方面,市面主流服務(wù)注冊中心的的對比如下:

Image


Modern Application


F5 LTM 通過 iApps LX  Eureka 的融合實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)

隨著架構(gòu)技術(shù)的演進(jìn),分布式、微服務(wù)架構(gòu)越來越流行,為如何把敏態(tài)的微服務(wù)組件與傳統(tǒng) F5 硬件負(fù)載均衡設(shè)備聯(lián)動,是基礎(chǔ)架構(gòu)團(tuán)隊(duì)、網(wǎng)絡(luò)團(tuán)隊(duì)、應(yīng)用開發(fā)團(tuán)隊(duì)三者面臨的一個難題?,F(xiàn)在我們可以利用 F5 上的 iApps LX 組件,使 F5 負(fù)載均衡設(shè)備和第三方注冊中心 Eureka 通信,實(shí)時獲取在 Eureka 上注冊的微服務(wù)組件信息,同時在 F5 設(shè)備上創(chuàng)建維護(hù) Pool。

具體流量交互過程:

Image

們給提前定義好的接口發(fā)送一個創(chuàng)建服務(wù)的請求,POST 請求的 payload 為 json 格式的 template,這個 template 的內(nèi)容是支持我們自定義的,在這里我們需要包含服務(wù)發(fā)現(xiàn)的類型,比如我們指定 Eureka。我們還要在這個 json 里面提供 Eureka 的 ip 地址,需要發(fā)現(xiàn)的服務(wù)名等。


當(dāng)我們 iApps LX 組件收到這個 POST 請求的時候,就會觸發(fā) iApps LX 里定義的事件函數(shù),去向服務(wù)注冊中心發(fā)送 REST 請求,拿到數(shù)據(jù)。當(dāng)然這個過程也完全支持用圖形化界面 GUI 的方式配置。



Modern Application


MSDA for Eureka 的配置過程

與前幾篇文章介紹的操作方式相似,在創(chuàng)建之前,我們需要設(shè)置好 Eureka 注冊中心。

Image

然后我們就開始 F5 的配置。

1
第一步

我們需要在 BIG IP 的 iApps LX 模塊中導(dǎo)入事先下載好的 f5-iapplx-msda-eureka rpm 包

Image


2
第二步

上傳完成后會生成一個新的msdazkTempletes,點(diǎn)擊查閱 iApps LX->Templates->Templates LX

Image

3
第三步

然后我們就可以通過 iApps LX->Application Services->Application LX 創(chuàng)建我們的服務(wù)

Image

4
第四步

我們需要在 GUI 上填入對應(yīng)信息,如 Eureka 的 IP 地址,端口,以及要訪問的 URL,

Image

我們還可以配置負(fù)載均衡算法及健康檢查,如下圖:

ImageImage


5
第五步

設(shè)置完畢,GUI 會將我們填入的信息自動生成一份 Json 文件,如下圖所示:

Image

以下 json 文件為示例,具體以實(shí)際生成為準(zhǔn):

Image

6
第六步

我們點(diǎn)擊 Deploy,則 iApps LX 服務(wù)就可以成功部署了。部署完成如下圖:

Image

檢查Pool的創(chuàng)建

Image

Pool 的詳情如下

Image

通過在 Local Traffic 中新建 Virtual Servers,這樣我們就向外部用戶或傳統(tǒng)應(yīng)用實(shí)現(xiàn)了微服務(wù)應(yīng)用的暴露。


利用 MSDA 實(shí)現(xiàn)基于 Eureka 的平臺的服務(wù)發(fā)現(xiàn),可以讓現(xiàn)有單體架構(gòu)可以快速融入分布式機(jī)構(gòu),并且打通傳統(tǒng)負(fù)載均衡設(shè)備與微服務(wù)架構(gòu)的隔閡。您也可以下載我們的 rpm 包,自己親手實(shí)踐,下載鏈接見下文。



 Modern Application


 免費(fèi)使用 

歡迎使用 F5 BIG-IP 交付現(xiàn)代應(yīng)用,并作為現(xiàn)代應(yīng)用和傳統(tǒng)應(yīng)用之間的鏈接橋梁


下載 MSDA 和 MSRA 的 RPM 包:

Image

免責(zé)聲明:

這些 iAppsLX RPM 軟件包并非 F5 公司官方支持的產(chǎn)品,如有任何問題或反饋,請向 GitHub repo 上提交 issue,或發(fā)送電子郵件至 msda@f5.com 。



立即登錄,閱讀全文
版權(quán)說明:本文內(nèi)容來自于F5,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
F5全新報告揭示AI時代API安全面臨嚴(yán)峻挑戰(zhàn)
F5全新報告揭示AI時代API安全面臨嚴(yán)峻挑戰(zhàn)
F5日前發(fā)布《2024年應(yīng)用策略現(xiàn)狀報告:API安全》(以下簡稱為“報告”),揭示了跨行業(yè)API安全面臨的嚴(yán)峻現(xiàn)狀。
AI
F5 Networks
云服務(wù)
2024-12-10
F5推出AI網(wǎng)關(guān),管理并保護(hù)快速增長的AI流量和應(yīng)用需求
F5推出AI網(wǎng)關(guān),管理并保護(hù)快速增長的AI流量和應(yīng)用需求
F5(NASDAQ:FFIV)日前宣布推出搶先體驗(yàn)版F5 AI網(wǎng)關(guān)(AI Gateway),以簡化企業(yè)在推動AI部署過程中應(yīng)用、API和大語言模型(LLMs)間的交互。
AI
F5 Networks
云服務(wù)
2024-11-27
F5搭載NVIDIA BlueField-3 DPU賦能加速AI應(yīng)用交付
F5搭載NVIDIA BlueField-3 DPU賦能加速AI應(yīng)用交付
F5(NASDAQ:FFIV)日前宣布推出BIG-IP Next for Kubernetes,一項(xiàng)全新的創(chuàng)新AI應(yīng)用交付和應(yīng)用安全解決方案,旨在為服務(wù)提供商和大型企業(yè)提供集中控制點(diǎn),以加速、保護(hù)和簡化流入和流出大型人工智能(AI)基礎(chǔ)設(shè)施的數(shù)據(jù)流量。
F5 Networks
云服務(wù)
2024-11-03
F5研究顯示:企業(yè)加速IT發(fā)展,以充分挖掘生成式AI潛力
F5研究顯示:企業(yè)加速IT發(fā)展,以充分挖掘生成式AI潛力
F5(NASDAQ:FFIV)日前發(fā)布《2024年數(shù)字化企業(yè)成熟度指數(shù)報告》(以下簡稱“報告”),該報告對全球企業(yè)數(shù)字化轉(zhuǎn)型工作進(jìn)行全面分析,強(qiáng)調(diào)了生成式人工智能(AI)的顯著影響及其在推動各行業(yè)數(shù)字化成熟度方面的關(guān)鍵作用。
F5 Networks
云服務(wù)
2024-11-02
優(yōu)質(zhì)服務(wù)商推薦
更多
個人VIP