0

我有被分成一個microService架構等(作爲示例)的假設web應用: Distributed application structure作爲Dropwizard服務的頁眉和頁腳?

客戶端A-C是用作HTML Web應用程序。服務1-3是處理CRUD並提供JSON的後端。還有其他客戶端(未圖示)不訪問前端服務 - 即本機客戶端,如Android和iOS。我試圖找出在所有網絡客戶服務常見前端的內容(比如頁眉/頁腳/ CSS)的最佳方式。我能想到的最好的方法是創建一個前端服務,每個Web客戶端都可以訪問這些前端服務來獲取這些常用信息。這樣,更改通用前端將立即反映在每個應用程序中,而無需更新版本,重新編譯或重新部署。

我的問題是什麼是這樣做的最佳方式?我正在使用Dropwizard爲Web客戶端和服務提供服務。 Web客戶端通過Jetty提供Dropwizard Views(帶有Freemarker模板)。有沒有辦法來撰寫Dropwizard的意見,使我可以請求頭,並從前端服務頁腳視圖和包裝這些圍繞每個視圖從客戶端返回的?或者我是否完全錯誤?我知道的Freemarker支持模板繼承,但據我所知,這意味着在頁眉/頁腳將不得不生活在每個客戶端或者從一個共同的JAR(這可能需要更新版本號和重新編譯)拉入。

回答

1

如果你想擁有所有的微服務之間同步內容,在你的情況下,頁眉和頁腳,我建議Zookeeper,它是專爲分佈式編排,有更多的推模式 - 即你想更新的標題在Zookeeper中,您的所有服務幾乎可以立即收到該更新。

我建議Curator庫,因爲它比直接使用Zookeeper更容易,cache example可能是一個有用的起點。

0

您還可以使用Hazelcast分佈式地圖/緩存。它非常易於使用(請參閱代碼示例),但如果您需要某些企業功能,則必須付出很多代價。