天天看點

mosquitto配置橋接

單個mosquitto伺服器端的流量是有限的,面對大流量的情況,我們可以使用橋接(bridge)的方式來搭建mosquitto叢集。

選取任意一個mosquitto伺服器作為bridge節點,在/etc/mosquitto目錄下mosquitto.conf檔案裡,找到Bridges(大概756行),能閱讀一下Bridges裡面的内容最好,不喜歡閱讀英文或者英文能力有限的同學,可以按照一下的配置,來搭建自己的叢集。
connection bridge129	#connection是關鍵字, bridge129可以随便命名
address 192.168.19.129:1883	#address是關鍵字 url:port根據實際的配置
topic # both 2	#topic是關鍵字,#表示所有的主題, both對應的有in,out,both 2表示qos消息品質

connection bridge130
address 192.168.19.130:1883
topic # both 2
           

需要注意的是:每個伺服器的1883端口一定要開放,否則連接配接出錯!

橋接模式類似于主從模式,bridge相當于主節點,當bridge節點當機,其他的所有節點也就失去了轉發中心,稱為獨立節點,是以,使用橋接需要選擇一個可靠的節點作為bridge。

以下是我搭建後的測試結果,128(bridge節點)訂閱了topic129和topic130主題,129節點訂閱了topic129主題,向topic130發送消息,130節點訂閱了topic130主題,向topic129發送消息。可以看到,各個節點都收到了想收到的消息。

mosquitto配置橋接
mosquitto配置橋接
mosquitto配置橋接

以上的配置是沒有使用密碼的,接下來的配置是使用密碼的。

1.在mosquitto.conf中,關閉匿名

2.指定密碼檔案

password_file /etc/mosquitto/pwfile.conf
           

3.拷貝并改名pwfile.example

cp pwfile.example pwfile.conf
           

4.添加賬号密碼

mosquitto_passwd -b /etc/mosquitto/pwfile.conf admin admin
           

5.bridge中修改

#129節點配置了賬号密碼,bridge中有修改
connection bridge129
address 192.168.19.129:1883
topic # both 2
remote_username admin	#賬号
remote_password admin	#密碼

#130節點沒有配置賬号密碼,和之前的配置一樣
connection bridge130
address 192.168.19.130:1883
topic # both 2
           
下圖是我在學習mqtt橋接時看到的,大意:brokers中隻有一個需要充當bridge的角色,例如:當你把broker1配置成bridge,然後broker2訂閱了broker1的消息,并且在broker2上釋出消息,同樣的,在broker1中訂閱了broker2的消息并且在broker1上釋出消息。
mosquitto配置橋接