2018-05-31 10:11:01   920   0   

本文最后更新于天前,文中介绍内容及环境可能已不适用.请谨慎参考.

工作中用到emqttd 的集群及nginx负载,

这两天负责配置测试了下整个集群相关的功能,

全部流程都整明白了,写了个文档记录一下,仅供参考.本文使用的版本为2.3.9,此集群配置需要2.3以上的版本

一. EMQ集群 

参考文档 emq文档 http://www.emqtt.com/docs/v2/config.html

1.1 EMQ集群部署目的

对于相同的主题,

从集群任意一个节点发送消息。

在集群中其他任意节点都能都到消息.

1.2 安装环境 

机器3台: 

名称

IP

系统

nodename

A1

192.168.100.204

Ubuntu16.04

node_a@192.168.100.204

A2

192.168.100.239

Centos6.8

node_b@192.168.100.239

A3

192.168.100.42

Centos7

node_c@192.168.100.42

Node.Cookie=dist_cookie

集群配置采用基于 static 节点列表自动集群

端口均为默认的1883端口

1.3 EMQ下载安装

A1: 

Wget http://emqtt.com/downloads/latest/ubuntu16_04-deb -O  ubuntu16_04-deb.deb

sudo dpkg -i ubuntu16_04-deb.deb

vim  /etc/emqttd/emq.conf

A2:

wget  http://emqtt.com/downloads/latest/centos6-rpm -O  emqt.rpm

rpm -ivh  emqt.rpm

vim  /etc/emqttd/emq.conf

A3:

wget http://emqtt.com/downloads/latest/centos7-rpm -O  emqt.rpm

rpm -ivh  emqt.rpm

vim  /etc/emqttd/emq.conf

1.4 集群配置

 

修改 3个机器中的emq.cof中的node.name 为1.0安装环境中的nodename,  node.cookie为相同的cookie

A1

A2

A3

修改集群方式为基于 static 节点列表自动集群

 

 

 

分别在a1,a2,a3 机器启动 emq

emqttd start 

二. 集群测试

使用命令检查集群状态:   

启 动2台节点 

启动3台节点

使用java代码MQTT客户端测试,或者下载

Mosquitto使用命令测试 http://mosquitto.org/download/ 

订阅a2机器上的主题为x的消 息 

mosquitto_sub -t x -q 1 -h 192.168.100.239 -p 1883

向a1或者a3节点推送x主题的消息

  

 

mosquitto_sub -t x -q 1 -h 192.168.100.42 -p 1883

 

 

a2机器都能收到消息

三. Nginx反向代理

3.1 Nginx反向代理目的

让所有EMQ节点共用一个IP端口,统一入口.

即使EMQ有节点无法工作,nginx反向代理的地址依然能正常工作. 

3.2 Nginx安装 

以centos6.8为例,安装目录/usr/local

 

ubuntu16.04安装,及目录目录端口映射参考另外一篇ubuntu16.04 安装mysql,zookeeper,nginx等这里

 

准备依赖包: 

cd /usr/local/

yum -y install gcc pcre-devel zlib-devel openssl-devel openssl

#ubuntu安装
#apt-get  install build-essential libtool libpcre3 libpcre3-dev zlib1g-dev openssl

wget http://nginx.org/download/nginx-1.11.5.tar.gz

 

安装NginX,编译过程中开启 --with-stream,tcp转 发必须模块 
 

tar -zxvf nginx-1.11.5.tar.gz



cd nginx-1.11.5



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



make && make install



  

3.3 Nginx反向tcp代理 

配置nginx  用18084端口代理 emq集群的1883端口

vim /usr/local/conf/nginx.conf

在文件最后添加

include my.conf;

  

新的配置在my.conf文件单独配置,

vim /usr/local/conf/my.conf

Stream

{

upstream emqt_cluster  {

        server 192.168.100.239:1883;

        server 192.168.100.204:1883;

   }

 server

{

 listen  18084;

       proxy_connect_timeout 1s;

       proxy_pass emqt_cluster;

  }

}

 

/usr/local/nginx/sbin/nginx -s reload;

 

 

 


 2018-12-14 11:05:01 
 4

  本文基于CC BY-NC-ND 4.0 许可协议发布,作者:野生的喵喵 固定链接: 【EMQ NGINX 集群配置】 转载请注明



发表新的评论
{{s_uid}}   , 欢迎回来.
您的称呼(*必填):
您的邮箱地址(*必填,您的邮箱地址不会公开,仅作为有回复后的消息通知手段):
您的站点地址(选填):
留言:

∑( ° △ °|||)︴

(๑•̀ㅂ•́)و✧
<( ̄) ̄)>
[]~( ̄▽ ̄)~*
( ̄ˇ ̄)
[]~( ̄▽ ̄)~*
( ̄ˇ ̄)
╮( ̄▽ ̄)╭
( ̄ε(# ̄)
(⊙ˍ⊙)
( ̄▽ ̄)~*
∑( ° △ °|||)︴

文章分类

可能喜欢 

KxのBook@Copyright 2017- All Rights Reserved
Designed and themed by 野生的喵喵   1343750   38280