三臺Linux虛擬機器搭建websocket負載均衡方案 圖文

廢話不多說,直接上乾貨。

虛擬域名:www。y1。com

三臺虛擬機器:192。168。226。136 192。168。226。137 192。168。226。138

準備工作:

1、使用VM安裝三臺虛擬機器

2、分別安裝寶塔,快速部署好PHP的執行環境

3、三臺機器分別安裝搭建好workman-chat。

截止到這一步,還有不會操作的同學,請檢視之前的文章,或者評論區給我留意。

第一步:第一步本機上邦hosts: 127。0。0。1 www。y1。com

本機nginx上做輪詢負載均衡,關鍵配置程式碼如下:

監聽80埠,負載均衡到三臺虛擬機器的80埠。

監聽7272埠,負載均衡到三臺虛擬機器的7272埠。

upstream www。y1。com { server 192。168。226。136:80; server 192。168。226。137:80; server 192。168。226。138:80;}upstream websocket{ server 192。168。226。136:7272; server 192。168。226。137:7272; server 192。168。226。138:7272;}server { listen 7272; server_name www。y1。com; location / { proxy_pass http://websocket; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}server { listen 80; server_name www。y1。com; location / { proxy_pass http://www。y1。com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}

下一步 三臺虛擬機器上放行下需要使用的埠:

三臺Linux虛擬機器搭建websocket負載均衡方案 圖文

下一步:136伺服器提供Register服務,需要將137和138兩臺伺服器上刪掉start_register。php檔案或者註釋掉裡面的程式碼。

136伺服器:

start_register。php檔案中程式碼修改為:

// register 服務必須是text協議$register = new Register(‘text://192。168。226。136:1236’);

start_gateway。php檔案中程式碼修改為:

// 分散式部署時請設定成內網ip(非127。0。0。1)$gateway->lanIp = ‘192。168。226。136’;// 服務註冊地址$gateway->registerAddress = ‘192。168。226。136:1236’;

start_businessworker。php檔案中程式碼修改為:

// 服務註冊地址$worker->registerAddress = ‘192。168。226。136:1236’;

137和138兩天伺服器上:

刪除start_register。php檔案或者註釋掉裡面程式碼

start_gateway。php檔案中程式碼修改為:

// 分散式部署時請設定成內網ip(非127。0。0。1)$gateway->lanIp = ‘192。168。226。137’; //注意這裡是各自伺服器的ip, 137 或者138// 服務註冊地址$gateway->registerAddress = ‘192。168。226。136:1236’;

start_businessworker。php檔案中程式碼修改為:

// 服務註冊地址$worker->registerAddress = ‘192。168。226。136:1236’;

全部配置成功以後,分別debug模式啟動三臺伺服器上的websocket。

136:

[root@192 Chat]# php /www/wwwroot/www。y1。com/workerman-chat/start。php startWorkerman[/www/wwwroot/www。y1。com/workerman-chat/start。php] start in DEBUG mode———————————————————————— WORKERMAN ————————————————————————Workerman version:4。0。6 PHP version:7。2。33————————————————————————- WORKERS ————————————————————————-proto user worker listen processes status tcp root ChatBusinessWorker none 4 [OK] tcp root ChatGateway websocket://0。0。0。0:7272 4 [OK] tcp root Register text://192。168。226。136:1236 1 [OK] tcp root none http://0。0。0。0:55151 2 [OK] ——————————————————————————————————————————————————————-Press Ctrl+C to stop。 Start success。

137:

[root@192 Chat]# php /www/wwwroot/www。y1。com/workerman-chat/start。php startWorkerman[/www/wwwroot/www。y1。com/workerman-chat/start。php] start in DEBUG mode———————————————————————— WORKERMAN ————————————————————————-Workerman version:4。0。6 PHP version:7。2。33————————————————————————- WORKERS ————————————————————————proto user worker listen processes status tcp root ChatBusinessWorker none 4 [OK] tcp root ChatGateway websocket://0。0。0。0:7272 4 [OK] tcp root none http://0。0。0。0:55151 2 [OK] ————————————————————————————————————————————————————Press Ctrl+C to stop。 Start success。

138:

[root@192 Chat]# php /www/wwwroot/www。y1。com/workerman-chat/start。php startWorkerman[/www/wwwroot/www。y1。com/workerman-chat/start。php] start in DEBUG mode———————————————————————— WORKERMAN ————————————————————————-Workerman version:4。0。6 PHP version:7。2。33————————————————————————- WORKERS ————————————————————————proto user worker listen processes status tcp root ChatBusinessWorker none 4 [OK] tcp root ChatGateway websocket://0。0。0。0:7272 4 [OK] tcp root none http://0。0。0。0:55151 2 [OK] ————————————————————————————————————————————————————Press Ctrl+C to stop。 Start success。

接下來,啟動多個瀏覽器,訪問www。y1。com

啟動了5個瀏覽器,登入了5個賬號,分別是PHP、Java、Hadoop、Python、Spark

三臺Linux虛擬機器搭建websocket負載均衡方案 圖文

Hadoop負載均衡到136伺服器上:

三臺Linux虛擬機器搭建websocket負載均衡方案 圖文

PHP、Spark負載均衡到137伺服器上:

三臺Linux虛擬機器搭建websocket負載均衡方案 圖文

Python、Java負載均衡到138伺服器上:

三臺Linux虛擬機器搭建websocket負載均衡方案 圖文

到此位置,websocket負載均衡搭建配置完成。

下面繼續 一臺伺服器掛掉的情況:

現在模擬138伺服器上websocket關閉,看下Java和Python兩個使用者是否會掉線

138伺服器已經關閉websocket,socket進行也沒有了

三臺Linux虛擬機器搭建websocket負載均衡方案 圖文

發現138伺服器上的Java和Python已經負載到136伺服器上,並且連線通訊正常

三臺Linux虛擬機器搭建websocket負載均衡方案 圖文

先把136這臺伺服器模擬websocket掛掉的情況:

三臺Linux虛擬機器搭建websocket負載均衡方案 圖文

現在5個使用者全部都連線到137伺服器上啦

三臺Linux虛擬機器搭建websocket負載均衡方案 圖文

收發訊息正常:

三臺Linux虛擬機器搭建websocket負載均衡方案 圖文

好了,親愛的小夥伴們,到此,三臺伺服器搭建叢集websocket聊天系統已經部署完成。

感興趣的小夥伴 趕緊去試試吧 !

公號【程式設計師小店】-【關注我,每週一篇乾貨文章,教你工作中的小技巧】