1. 程式人生 > >Ocelot中文文件-Raft(實驗功能不能用於生產環境)

Ocelot中文文件-Raft(實驗功能不能用於生產環境)

原文: 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的每個例項。 然後伺服器應該開始彼此通訊! 您可以通過釋出配置更新來檢測一切是否正常工作,並通過配置來檢查它是否已複製到所有伺服器。