Openfire的單機併發量,一直是一個比較含糊的東西,即便官方也沒有很清楚的介紹。但按我自已評估,以4核、8G內存這樣的機器配置,5萬+的併發應問題不大。而當用戶體量逐步上漲,前期能夠經過擴容的方式提高性能,但若體量足夠大,如幾十萬併發,單機的擴容已不是首選的方案,一來考慮性價比,二來若是整套系統跑在一臺機器上,出現異常可能會波及全部在線的用戶,用戶感覺極差。這時候,就須要把系統的壓力分攤到多個服務器上,這就是集羣。nginx
集羣的引入,是爲了解決單機的併發瓶頸,在多個服務器上,分別運行Openfire實例,並進行數據共享,使得多臺機器的協做運行效果,與單機同樣。sql
而優秀的集羣系統,不單單能提高性能,並且能自我管理。當其中某臺機器出現異常,將觸發集羣的維護機制,好比剔除該異常節點,爲系統的穩定性提供保障。數據庫
Openfire爲集羣的接入提供了透明接口,能夠經過添加插件的形式實現集羣。服務器
具體Openfire的集羣機制是如何,咱們在後面的章節再來分析,本章主要講解集羣的配置,使用的集羣插件是:Hazelcast。併發
IP1:192.168.5.1 IP2:192.168.5.2
二、Mysql數據庫,安裝在服務器1負載均衡
數據地址:192.168.5.1:3306
<join> <multicast enabled="false"> <multicast-group>224.2.2.3</multicast-group> <multicast-port>54327</multicast-port> </multicast> <tcp-ip enabled="true"> <member>192.168.5.2:5701</member> <member>192.168.5.1:5701</member> </tcp-ip> <aws enabled="false"/> </join> <interfaces enabled="true"> <interface>192.168.5.1</interface> </interfaces>
服務器2:tcp
<join> <multicast enabled="false"> <multicast-group>224.2.2.3</multicast-group> <multicast-port>54327</multicast-port> </multicast> <tcp-ip enabled="true"> <member>192.168.5:1:5701</member> <member>192.168.5.2:5701</member> </tcp-ip> <aws enabled="false"/> </join> <interfaces enabled="true"> <interface>192.168.5.2</interface> </interfaces>
使用兩個客戶端,分別登陸兩個機器,若是客戶端能進行通訊,則集羣功能已經具有。性能