Openfire 集群部署和負載均衡方案


Openfire 集群部署和負載均衡方案

 

一.   概述

Openfire是在即時通訊中廣泛使用的XMPP協議通訊服務器,本方案采用Openfire的Hazelcast插件進行集群部署,采用Haproxy進行負載均衡,在示例環境中測試通過。

二.   示例環境

服務器配置如下:

服務器名

用途

操作系統

IP

PC647

Openfire節點1

Windows7

10.200.10.11

seasky

Openfire節點2

Windows xp

10.200.10.18

Lub1

Mysql數據庫

LUbuntu 12

10.200.10.12

Lub3

負載均衡器

LUbuntu 12

10.200.10.19

所用軟件版本如下:

軟件名稱

版本號

用途

提供商

Openfire

3.10beta

Xmpp服務器

Jive Software

Hazelcast

1.3.3

Openfire集群插件

Tom Evans

Mysql server

5.5.0

配套數據庫

Oracle

Haproxy

1.4.18

TCP負載均衡器

HAProxy

RooyeeMessager

3.6.1

Xmpp客戶端

深圳如意通

 

三.   軟件安裝

  1. 在PC647和seasky上安裝openfire,軟件下載地址:http://download.igniterealtime.org/openfire/openfire_3_10_0_beta.exe
  2. 在lub1上安裝mysql

安裝命令:sudo apt-get install mysql-server

  1. 在lub3上安裝haproxy.

安裝命令:sudo apt-get install haproxy

四.   集群部署

1.安裝openfire后啟動管理控制台進行配置,

 

2.設置安裝語言后進入服務器設置,設置域名信息。注意集群中每個openfire節點應該使用相同的域名。

 

3.在mysql數據庫中創建openfire數據庫,執行openfire_mysql.sql創建數據表,該文件位於openfire的安裝目錄的\resources\database文件夾里,也可以使用其它類型的數據庫。

 

4.在openfire管理控制台配置數據庫連接信息。

5.在特性中使用初始設置,在隨后的界面中輸入管理員密碼。

6.設置完畢后登錄管理控制台

 

7.切換到插件選項卡,進入有效的插件頁面。

 

8.安裝 Broadcast,Clustering Plugin  和Hazelcast Clustering Plugin 三個插件,注意集群中的每個節點都要安裝。

 

9.在openfire安裝目錄下的plugins\hazelcast\classes文件夾里找到hazelcast-cache-config.xml配置文件,然后找到其中的join和interfaces配置節。

 

將其修改為以下形式:

 

其中member中是集群中各節點的IP地址和端口號,interface中是當前機器的IP地址。注意集群中的每個節點都要進行如此配置。

10.進入openfire管理控制台,切換到服務器選項卡,進入到集群頁面。

 

11.在集群設置中選擇“啟用”並保存設置。集群中的每個節點都要做這個設置。

 

12.啟用成功后集群概述中將出現各節點的信息,如下圖所示。注意啟動可能較慢,耗時可能在30秒到兩分鍾之間。

 

五.   負載均衡

1.進入haproxy所在的lub3服務器, 將當前用戶加入到haproxy用戶組中,本例中當前用戶為lunacy

 

2.修改haproxy配置文件 haproxy.cfg,將global配置節中的user改為當前用戶。

 

3.將defaults節下的mode改為tcp, option改為tcplog,並移除其它與http有關的選項。

 

4.加入listen配置節,轉發openfire端口5222,7070和9090,其它端口若有需要,也可以加入。

 

5.使用修改后的配置文件啟動haproxy,本例中使用如下命令:

     Sudo /usr/sbin/haproxy –f /etc/haproxy/haproxy.cfg

6. 在瀏覽器中輸入http://10.200.10.19:9090,已經能夠正常進入控制台,注意該IP地址是負載均衡器所在的服務器地址,該機器上沒有安裝openfire.

 

7.啟動xmpp客戶端rooyeemessager,在網絡設置中輸入ip為10.200.10.19,端口5222,點擊測試后,軟件提示測試連接成功。

 

 

8.使用rooyeemessager登錄admin@im.quanya.com用戶, 提示登錄成功:

 

 

6.至此,openfire集群部署和負載均衡已經配置完畢,分別在PC647和seasky的openfire中創建兩個用戶,用兩個客戶端在不同的機器中收發信息,證實openfire集群可以正常運行。

六.   注意事項

1.openfire和hazelcast插件的版本必須匹配,否則無法啟用集群。

2.在實際的集群部署中mysql也應當配置為集群,本例中不再演示。

3.oepnfire3.10已經不支持spark2.6.3,請勿使用此軟件作為測試客戶端。

4.本例使用lbuntu系統,在centos或redhat上部署時使用的命令可能不同。

5.測試時不要在一台機器同時登錄兩個賬戶進行收發,有些客戶端會引起混亂。

6.haproxy不提供關閉命令,如果需要關閉要使用kill殺死進程。

7.本例中openfire部署在windows上,實際中部署在linux上會獲得更佳性能。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM