1.软件版本选择
emqx-centos7-v3.2.8.zip
2.修改配置文件 emqx.conf
两台服务同时修改参数:
cluster.discovery = static cluster.static.seeds = emqx1@192.168.174.205,emqx2@192.168.174.206 node.name = emqx@192.168.174.205 node.dist_listen_min = 6369 node.dist_listen_max = 7369 |
3.分别启动两个服务器emqx
./bin/emqx start ./bin/emqx stop |
4.emqx 集群
./emqx_ctl cluster join emqx@192.168.174.206 |
=CRITICAL REPORT==== 13-Nov-2021::06:27:06.078864 === [EMQ X] emqx shutdown for join Join the cluster successfully. Cluster status: [{running_nodes,['emqx@192.168.174.206', 'emqx@192.168.174.205']}] |
5. 安装 haproxy
yum install -y haproxy
6. 修改 haproxy.cfg
#--------------------------------------------------------------------- # Example configuration for a possible web application. See the # full configuration options online. # # http://haproxy.1wt.eu/download/1.4/doc/configuration.txt # #--------------------------------------------------------------------- #--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global # to have these messages end up in /var/log/haproxy.log you will # need to: # # 1) configure syslog to accept network log events. This is done # by adding the '-r' option to the SYSLOGD_OPTIONS in # /etc/sysconfig/syslog # # 2) configure local2 events to go to the /var/log/haproxy.log # file. A line like the following can be added to # /etc/sysconfig/syslog # # local2.* /var/log/haproxy.log # log 127.0.0.1 local0 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats #--------------------------------------------------------------------- # common defaults that all the 'listen' and 'backend' sections will # use if not designated in their block #--------------------------------------------------------------------- defaults mode tcp log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 #--------------------------------------------------------------------- # main frontend which proxys to the backends #--------------------------------------------------------------------- frontend main *:5000 # acl url_static path_beg -i /static /images /javascript /stylesheets # acl url_static path_end -i .jpg .gif .png .css .js # use_backend static if url_static default_backend mqtt_backend #--------------------------------------------------------------------- # static backend for serving up images, stylesheets and such #--------------------------------------------------------------------- #backend static # balance roundrobin # server static 192.168.174.205:3306 check #--------------------------------------------------------------------- # round robin balancing between the various backends #-------------------------------------------------------------------- backend mqtt_backend balance leastconn server mqtt1 192.168.174.205:1883 check inter 10000 fall 2 rise 5 weight 1 server mqtt2 192.168.174.206:1883 check inter 10000 fall 2 rise 5 weight 1 #server app3 127.0.0.1:5003 check # server app4 127.0.0.1:5004 check listen admin_stats mode http stats enable bind *:7777 stats refresh 30s stats uri /admin stats realm haproxy stats auth root:root stats hide-version |
7.编写 接口推送数据测试 略.
server: port: 8081 #emqx mqtt: serverURIs: tcp://192.168.174.204:5000 ## 代理端口号 username: admin password: public client: id: ${random.value} topic: topic_test |
8. EMQ 页面