创建健壮的微服务架构所涉及的组件
在本文中,我們將簡要學習構建強大的微服務應用程序所需的各種軟件組件。 在簡要了解每個架構組件之前,我們將陳述設計微服務架構時出現(xiàn)的一般查詢。
1.微服務架構組件
每當我們創(chuàng)建微服務應用程序時,我們都會想到以下問題
- 我們將如何注冊微服務,以便客戶可以使用該注冊信息(服務發(fā)現(xiàn))并調(diào)用微服務?
- 我們?nèi)绾未_保所構建的微服務應用程序完全容錯并且高度可用?
- 我們?nèi)绾未_保只有一個接口提供給客戶端,從而減少了很多客戶端的工作量,并使Micro Services應用程序非常易于使用?
- 如何無縫平衡傳入請求到微服務的負載?
請查看下面的架構圖,讓我們了解構建架構所涉及的組件是否可以解決上述所有問題:
微服務架構組件
1.1 Netflix Eureka服務器
Netflix Eureka充當發(fā)現(xiàn)服務器,其中出現(xiàn)后的微服務會將其自身注冊為發(fā)現(xiàn)客戶端。 Netflix Eureka向外部提供了一個REST接口以與之通信。 Eureka還具有另一個名為Eureka Client的軟件模塊,通過它與Eureka Server交互交互以進行服務發(fā)現(xiàn)。 Eureka Client還帶有內(nèi)置的Load Balancer,可以對傳入的客戶端請求進行負載平衡。
Netflix Eureka Server是上述問題1的答案。
1.2 Hystrix服務器
Hystrix充當容錯彈性系統(tǒng),用于避免軟件應用程序完全失敗。 它通過提供一種斷路器機制來做到這一點,在這種機制中,當應用程序平穩(wěn)運行而沒有任何問題時,電路保持閉合狀態(tài)。 如果應用程序中連續(xù)遇到錯誤,則Hystrix服務器電路將打開,并且任何對呼叫服務的進一步請求都將被Hystrix停止,而是將請求轉(zhuǎn)移到回退服務。 這樣,它提供了一個高彈性的系統(tǒng)。
Hystrix Server是以上問題2的答案。
1.3 Netfilx Zuul服務器
Netflix Zuul Server充當一種網(wǎng)關服務器,其中所有客戶端請求hva都通過它,因此它充當一種客戶端的統(tǒng)一接口。 客戶端使用單個通信協(xié)議與所有微服務進行通信,Zuul服務器負責使用其適當?shù)耐ㄐ艆f(xié)議調(diào)用各種微服務。 Netflix Zuul還具有內(nèi)置的負載均衡器,以負載均衡來自客戶端的所有傳入請求。
Netflix Zuul Server是上述問題3的答案。
1.4 Netflix功能區(qū)
Netflix Ribbon充當一種負載均衡器,在其中負載均衡來自客戶端的所有傳入請求。 盡管可以將其配置為使用任何其他備用負載平衡機制,但默認情況下,它使用基本的Round Robin負載平衡策略。 Netflix Zuul Server已內(nèi)置了Netflix Ribbon。 如果要獨立使用Netflix Ribbon,我們必須預配適當?shù)腘etflix Ribbon Maven軟件包,以在任何應用程序中使用它。
Netflix Ribbon Server是對以上問題4的回答。
2.結論
在本文中,我們簡要了解了構建Micro Services應用程序時需要使用的所有軟件組件。 在下一篇文章中,我們將嘗試詳細了解Netflix Eureka的工作原理。
翻譯自: https://www.javacodegeeks.com/2016/05/components-involved-creating-robust-micro-service-architecture.html
總結
以上是生活随笔為你收集整理的创建健壮的微服务架构所涉及的组件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 35互联备案幕布(35互联备案)
- 下一篇: jax-rs jax-ws_JAX-WS