簡體   English   中英

微服務/ REST容錯通信

[英]Microservice / REST fault tolerant communication

我有一些微服務(帶有REST模板的Spring MVC),它們通過REST(主要是異步)相互通信。

問題是,我想為系統增加一些容錯能力; 例如,如果一個微服務關閉而另一個系統正在發出請求,則此請求應在以后自動重試。

因此,基本上我正在尋找某種REST代理,該代理:

  • 消耗REST請求
  • 嘗試將郵件傳遞給其收件人
  • 如果傳送失敗,請稍后再試

是否有為此目的的項目/圖書館?

謝謝,克里斯蒂

您可以查看Spring的現成解決方案:Spring Cloud + Eureka + Hystrix + Zuul + Ribbon您還可以將spring-retry與@Retryable @Recover批注一起使用。

如果您使用docker並在多宿主計算機上進行某種形式的容器編排(例如docker swarm,kubernetes ...),則可以運行每個微服務的多副本,在故障后自動恢復,副本之間的負載平衡和無縫網絡(不需要服務器IP只是微服務名稱)。

但是,這也會增加運行同一應用程序的多個副本的復雜性(數據一致性...)。

但是,您可能會有一群(多個服務器)運行着每個服務的一個副本,並且數據持久保存在某個外部數據庫或文件系統上。 然后,當其中一台服務器死亡或其中一項服務遇到問題時,新實例將啟動,並且所有請求將等待此啟動(同樣,服務不知道彼此的IP只是他們想要的服務的名稱與之交談,協調器負責鏈接服務)。

在最簡單的設置中,您可能還擁有僅一台服務器的集群,並將任何東西存儲在本地數據庫或文件系統上。 美麗之處在於您的設置已經可以使用可擴展的技術構建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM