K2目前是支持Load Balancing這種方式,來作負載均衡,也能夠使用F5來作負載均衡,但此次我使用nginx來實現K2的負載均衡html
請下載nginx-1.9.0+
版本,由於nginx是1.9開始支持tcp層的轉發,經過stream實現的,而socket也是基於tcp通訊。,下載地址:
http://nginx.org/en/download.html
由於個人環境是Windows 10,因此我下載的是Windows版本,解壓後的目錄:
nginx
nginx.conf
文件在conf下,打開此文件,修改配置:
nginx下stream
的配置,能夠去官網看看;
這個只是一個測試,因此我只配置了個人全部K2服務器,並監聽本地的5252
端口,若是有tcp請求,就轉發到k2api
中。api
啓動cmd
命令提示符服務器
start nginx
啓動nginx
其它命令:負載均衡
nginx -s reload --修改配置後從新加載生效 nginx -t -c /conf/nginx.conf 測試nginx配置文件是否正確 nginx -s stop :快速中止nginx nginx -s quit :完整有序的中止nginx
編寫控制檯測試程序,關鍵點:socket
SourceCode.Workflow.Client.Connection K2Conn K2Conn = new Connection(); K2Conn.Open("127.0.0.1", "Integrated=True;IsPrimaryLogin=True;Authenticate=True;EncryptedPassword=False;Host=127.0.0.1;Port=5252");
這裏K2連接,以前應該是直接指向K2服務器的,這裏我指向本機。
運行測試程序:
提示發起流程成功,而後再去Workspace查看,是否有流程實例生成:
Workspace也正常,這說明nginx的代理是成功的。
若是使用命令中止nginxtcp
nginx -s stop
而後再運行測試程序:
能夠看到錯誤提示,連接不到K2服務器。測試