Ocelot中文文件-Raft(實驗功能不能用於生產環境)
阿新 • • 發佈:2019-01-09
原文:
Ocelot中文文件-Raft(實驗功能不能用於生產環境)
Ocelot最近整合了Rafty,這是我在去年一直研究的Raft的一個實現。 這個專案實驗性非常強,所以在我認為它沒問題之前,請不要在生產環境中使用Ocelot的這個功能。
Raft是一種分散式一致性演算法,它允許一組伺服器(Ocelots)保持本地狀態,而不需要一個集中式資料庫(例如SQL Server)儲存狀態。
為了在Ocelot中啟用Rafty,您必須對Startup.cs進行以下改動。
public virtual void ConfigureServices(IServiceCollection services) { services .AddOcelot() .AddAdministration("/administration", "secret") .AddRafty(); }
除此之外,您還必須在您的主專案中新增名為peers.json的檔案,其內容看起來如下所示:
{ "Peers": [{ "HostAndPort": "http://localhost:5000" }, { "HostAndPort": "http://localhost:5002" }, { "HostAndPort": "http://localhost:5003" }, { "HostAndPort": "http://localhost:5004" }, { "HostAndPort": "http://localhost:5001" } ] }
Ocelot的每個例項必須在陣列中有它的地址,以便它們可以使用Rafty進行通訊。
完成這些配置更改後,您必須使用peers.json檔案中的地址部署和啟動Ocelot的每個例項。 然後伺服器應該開始彼此通訊! 您可以通過釋出配置更新來檢測一切是否正常工作,並通過配置來檢查它是否已複製到所有伺服器。