当前位置:   article > 正文

linux + emqx5.6.1单机集群(非docker的方式)_emqx 5.6.1 单机启动

emqx 5.6.1 单机启动

docker用起来不是很熟悉,所以直接安装emqx吧。这里集群只用两个举例,因为懒。

下载:

wget https://www.emqx.com/zh/downloads/broker/5.6.1/emqx-5.6.1-el7-amd64.tar.gz

解压:

mkdir -p emqx && tar -zxvf emqx-5.6.1-el7-amd64.tar.gz -C emqx

然后复制一份到emqx2文件夹

创建虚拟网卡:

  1. ip addr add 192.168.1.11/24 dev eth0
  2. ip addr add 192.168.1.12/24 dev eth0

启动虚拟网卡(重启服务器后重新创建以及启动):

ip link set dev eth0 up

修改emqx/etc/emqx.conf 文件

  1. node {
  2. name = "emqx@192.168.1.11"
  3. cookie = "yffxcookie"
  4. data_dir = "data"
  5. process_limit = 2097152
  6. max_ports = 1048576
  7. }

在emqx的bin目录下
运行:

  1. ./emqx start

启动后,登录控制台:ip:18083,初始用户名密码:admin和public。

第一个emqx安装完毕。

开始安装第二个,因为是单机,所以需要解决端口冲突的问题。emqx5.0端口修改配置如下:

  1. listeners.tcp.default {
  2. bind = "0.0.0.0:3883"
  3. acceptors = 64
  4. max_connections = 1024000
  5. proxy_protocol = false
  6. }
  7. listeners.ssl.default {
  8. bind = "0.0.0.0:38883"
  9. enabled = true
  10. acceptors = 16
  11. enable_authn = true
  12. max_connections = infinity
  13. mountpoint = ""
  14. proxy_protocol = false
  15. proxy_protocol_timeout = 3s
  16. }
  17. listeners.ws.default {
  18. bind = "0.0.0.0:39083"
  19. enabled = true
  20. enable_authn = true
  21. max_connections = infinity
  22. proxy_protocol = false
  23. proxy_protocol_timeout = 3s
  24. mountpoint = ""
  25. }
  26. listeners.wss.default {
  27. bind = "0.0.0.0:38084"
  28. enabled = true
  29. enable_authn = true
  30. max_connections = infinity
  31. proxy_protocol = false
  32. proxy_protocol_timeout = 3s
  33. mountpoint = ""
  34. }
  35. dashboard {
  36. listeners.http {
  37. bind = 38083
  38. }
  39. }

节点名称修改如下:

  1. node {
  2. name = "emqx1@192.168.1.12"
  3. cookie = "yffxcookie"
  4. data_dir = "data"
  5. process_limit = 2097152
  6. max_ports = 1048576
  7. }

需要注意的是:

ip地址需要与emqx@ip对应,因为其他的emqx是需要ping通你的ip才能加入集群。
两个emqx的cookie必须一致
除了安装的第一个emqx,后面的emqx部署必须加上数字,如emqx1@ip,emqx2@ip。ip必须是可以ping通的,用于后期加入集群。

然后就可以启动第二个emqx,然后加入第一个emqx即可。

./emqx_ctl cluster join emqx@192.168.1.11

最后的分发机制,我用的nginx反向代理代理:

nginx配置:

  1. upstream mqtt_servers {
  2. server 自己的真实ip:1883 weight=1;
  3. server 自己的真实ip:3883 weight=1;
  4. }
  5. server {
  6. listen 2883 so_keepalive=on;
  7. #status_zone tcp_server;
  8. proxy_connect_timeout 70s;
  9. proxy_timeout 100s;
  10. proxy_pass mqtt_servers;
  11. tcp_nodelay on;
  12. proxy_protocol on;
  13. }

注意proxy_protocol  on是用于tcp连接emqx的时候获取真实ip用的,如果nginx中开启了emqx的tcp就要同步开启,如下:

  1. listeners.tcp.default {
  2. bind = "0.0.0.0:3883"
  3. acceptors = 64
  4. max_connections = 1024000
  5. proxy_protocol = on
  6. }

如果你的nginx不支持proxy_protocol  说明nginx没有安装插件。在nginx的sbin目录下编译:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-stream_ssl_module

需要安装其他插件继续后加上--with插件名称即可。

以上就是不使用docker单机安装emqx集群的全部内容了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/722401
推荐阅读
相关标签
  

闽ICP备14008679号