2016-01-24 120 views
2

我們使用Akka作爲我們的微服務平臺。目前我們不會支持非JVM平臺,所以我們使用Akka actors之間的直接消息作爲通信平臺。如何共享Akka微服務之間的通信模型?

這樣,我們的通訊單元只是案例類別。我們是否必須重複自己併爲每個微服務定義案例類,或者我們可以將所有消息類放入單個項目並在微服務項目之間共享它們?

我知道不推薦在微服務之間共享模型,但是因爲我們使用Akka通信協議,我不確定是否在多個項目中創建相同的通信案例類是正確的。如果一個微服務改變了模型,而其他模型則不改變呢?我們如何在不破壞整個系統的情況下處理版本控制和升級到通信模型的新版本。

回答

2

的一種可能的解決方案是由SBT樓各微服務儘可能少的包和處理版本:

  • 模型 - 一組類微服務
  • 之間劃分 - 微服務邏輯,取決於模型包
  • 網關 - 主要微服務的接口依賴於模型包,包含在其他微服務中,有可能在這裏緩存一些信息