在geecon 2018大會上,michael plöd在一場介紹微服務之間不同的通訊策略的演講中解釋說,在從單體架構遷移到微服務架構時,暗含在單體架構中的複雜性會明確顯露出來,通訊挑戰將呈指數級增長。
\u0026#xd;\n\u0026#xd;\n
plöd是innoq首席顧問。他首先指出,根據他的經驗,團隊經常把微服務視為預設架構。他強調,分布式系統是高難度的系統;如果你不需要乙個分布式系統,你就不必為了微服務而力爭實現那樣的架構。在這種情況下,構建良好的單體通常是更好的選擇。
\u0026#xd;\n\u0026#xd;\n
當單體不滿足需求而使用微服務時,必須把它們整合,plöd指出,這不只是技術問題,還有其他方面的影響:
\u0026#xd;\n\u0026#xd;\n
為了幫助團隊通訊及管理耦合,plöd指出,領域驅動設計(ddd)對在業務層面找出邊界非常有幫助——有界上下文。這些上下文彼此之間通常以不同的方式進行互動,為了描述它們之間的關係,可以使用上下文對映。這些互動模式包括:
\u0026#xd;\n\u0026#xd;\n
讓我們看下通訊的技術選項,plöd指出了四種型別:
\u0026#xd;\n\u0026#xd;\n
雖然rest如今已經廣為人知,但根據plöd的經驗,只有很少團隊很好地實現了,尤其是在超**和多表示形式方面。他指出,實現乙個restful資源呼叫非常簡單,但是,實現乙個可以在微服務環境中正常執行的健壯呼叫要困難許多。以下是需要知道的一些陷阱和挑戰:
\u0026#xd;\n\u0026#xd;\n
plöd的第三個選項是領域事件。它們表示過去在業務層面上已經發生的事實。使用它們進行通訊會得到事件驅動的微服務,現如今,這是一種非常流行的架構風格。當使用事件通訊時,對於事件中的有效載荷,他介紹了幾個可選方案:
\u0026#xd;\n\u0026#xd;\n
plöd最後的選項是使用atom feeds組合rest和事件。現在,服務會利用事件發布推送資訊,消費者訂閱並非同步讀取。在大多數環境中,使用http都非常容易通訊,而且可以利用像etags、最後修改時間、分頁和鏈結這樣的特性。另外乙個好處是,服務發布推送資訊,可以從消費者完全解耦。推送訊息的讀取完全是由消費者按照它們認為恰當的方式進行的,而且,已消費事件的跟蹤也是由消費者完成的。
\u0026#xd;\n\u0026#xd;\n
為了提供推送訊息,事件必須持久化,這就輪到事件源登場了。我們可以使用這些事件作為我們主要的持久化模型,這還使得我們可以使用cqrs來獲得檢視,這些檢視是經過優化的事件讀取模型。plöd特別指出,cqrs和事件源只是系統特定部分的解決方案,而不代表系統中隨處都在使用的架構。
\u0026#xd;\n\u0026#xd;\n
一書。\u0026#xd;\n\u0026#xd;\n
檢視英文原文:strategies for microservices communication
\u0026#xd;\n\u0026#xd;\n
微服務通訊策略
在geecon 2018大會上,michael pl d在一場介紹微服務之間不同的通訊策略的演講中解釋說,在從單體架構遷移到微服務架構時,暗含在單體架構中的複雜性會明確顯露出來,通訊挑戰將呈指數級增長。pl d是innoq首席顧問。他首先指出,根據他的經驗,團隊經常把微服務視為預設架構。他強調,分布...
微服務通訊策略
在geecon 2018大會上,michael pl d在一場介紹微服務之間不同的通訊策略的演講中解釋說,在從單體架構遷移到微服務架構時,暗含在單體架構中的複雜性會明確顯露出來,通訊挑戰將呈指數級增長。pl d是innoq首席顧問。他首先指出,根據他的經驗,團隊經常把微服務視為預設架構。他強調,分布...
微服務通訊策略
在geecon 2018大會上,michael pl d在一場介紹微服務之間不同的通訊策略的演講中解釋說,在從單體架構遷移到微服務架構時,暗含在單體架構中的複雜性會明確顯露出來,通訊挑戰將呈指數級增長。pl d是innoq首席顧問。他首先指出,根據他的經驗,團隊經常把微服務視為預設架構。他強調,分布...