准备工作:操作系统ubuntu 16.04,虚拟机VMware Workstation 12 Pro

一、安装EMQX

1、打开EMQ首页:https://www.emqx.io/cn/

2、选择产品 -> EMQ X Broker

3、在ubuntu上安装v4.0.0版本,选择相应的下拉列表,在下载按钮下会出现zip包的下载地址,复制该地址;

4、在虚拟机上选择编辑 -> 粘贴,将EMQ包地址复制到ubuntu中。

5、开始下载EMQX v4.0.0 zip包

6、使用unzip命令解压程序包

        unzip emqx-ubuntu16.04-v4.0.0.zip

7、启动 EMQ X Broker(进入emqx文件夹)

./bin/emqx start
emqx 4.0.0 is started successfully!

8、查看EMQ X Broker状态

./bin/emqx_ctl status
Node 'emqx@127.0.0.1' is started
emqx v4.0.0 is running

通过浏览器,使用地址http://ubuntu系统IP:18083/,进入Dshboard界面查看EMQX运行状态(默认用户:admin,密码:public)

此时已经可以进行MQTT消息发布订阅了!(此处可以有掌声)

9、停止EMQ X Broker

./bin/emqx stop
ok

10、开启MQTT身份认证(Username 认证)

1)通过Dashboard直接启用插件

或执行./bin/emqx_ctl plugins load emq_auth_username

2)关闭允许匿名用户登录(etc/emqx/emqx.conf)

将allow_anonymous = true,改为false,保存退出

3)设置用户名密码

注:4.3版本中emqx_auth_clientid 与 emqx_auth_usernmae 合并为 emqx_auth_mnesia,一定记得在Dashboad中启用 emqx_auth_mnesia 这个插件!!!!!

使用HTTP API管理认证数据:

请求方式:Post方式

地址:http://IP地址:8081/api/v4/auth_username/

这里要注意下EMQX的API使用Basic Auth的认证方式,要在http头中放入用户名、密码,开始的时候没注意到这个,在坑里转了半天!

然后。。。。添加用户、密码,这里用的JSON格式

添加成功返回"code": 0

GET方式 api/v4/auth_username 查看所有用户)
GET方式 api/v4/auth_username/test 查看用户test)
PUT方式 api/v4/auth_username/test 修改用户)
 
DELETE方式 api/v4/auth_username/test 删除用户)
 

4)权限配置

默认配置中ACL是开放授权的,即授权结果为忽略(ignore允许客户端通过授权。

通过 etc/emqx.conf 中的 ACL 配置可以更改该属性为deny,即用户未授权时不允许进行消息发布订阅:

# etc/emqx.conf
修改为:acl_nomatch = deny,阻止未授权用户进行消息发布订阅;

内置 ACL 通过文件设置规则,使用上足够简单轻量,适用于规则数量可预测、无变动需求或变动较小的项目。

方法一:

修改ACL 规则文件etc/acl.conf(EMQX加载先后顺序貌似从下向上)注

注:把最下面一条注释了 ==>  %%{allow, all},不然设置的权限无效

在 acl.conf 修改完成后,并不会自动加载至 EMQ X 系统。需要手动执行:

./bin/emqx_ctl acl reload

二、创建集群

首先,把虚拟机复制一份,在VM中打开。

EMQ X 集群中的节点通过节点名互相访问,所以需要在emqx/etc/emqx.conf文件中设置正确的节点名。节点名的格式是name@host。host可以是 IP 地址或者 FQDN。

修改节点名称如:

节点一:emqx80@192.168.2.80

节点二:emqx81@192.168.2.81

EMQ X 使用cookie来确认同一个集群中的节点。同一个集群中的节点必须使用相同的cookie。在编辑配置文件 emqx/etc/emqx.conf中修改cookie

node.cookie = emqxsecretcookie

手动集群方式是 EMQ X 的默认集群方式。如果需要修改集群方式,在配置文件emqx/etc/emqx.conf中修改:

cluster.discovery = manual

在任意独立节点上执行 cluster join 后,该节点会被加入到集群中,在80系统的节点上添加:

     ./bin/emqx_ctl cluster join emqx81@192.168.2.81

或在81系统的节点上添加:

     ./bin/emqx_ctl cluster join emqx80@192.168.2.80

在节点被成功的加入到集群后,系统会返回以下提示:

Join the cluster successfully.
Cluster status: [{running_nodes,['emqx80@192.168.2.80','emqx81@192.168.2.81']}]

从集群中移除节点 EMQ X 提供两种方式从集群中移除一个节点:

  • leave: 需要移除的节点主动退出集群。在该节点上执行以下命令即可退出集群:
  • $ ./bin/emqx_ctl cluster leave
  • remove: 从集群的其他节点移除一个节点。在集群的其他节点上执行以下命令即可移除该节点。本例在 s1 节点上执行以下命令把 s2 节点移除出集群:
  • $ ./bin/emqx_ctl cluster remove emq@s2.emqx.io

查询集群状态 在集群中的任意节点上使用emqx_ctl工具的 cluster status 命令可以查询目前集群的状态:

$ ./bin/emqx_ctl cluster status

Cluster status: [{running_nodes,['emqx80@192.168.2.80','emqx81@192.168.2.81']}]

三、使用负载均衡LB

使用HAProxy或Nginx 作为 LB 部署 EMQ X 集群。这里用的HAProxy做为负载均衡:

1、安装HAProxy

sudo apt-get install haproxy

2、编辑配置文件

sudo vim /etc/haproxy/haproxy.cfg

3、运行haproxy:

/usr/sbin/haproxy –f /etc/haproxy/haproxy.cfg

4、设置开机运行

sudo vim /etc/rc.local,在文档最后添加上面的运行语句就OK了。

花了三天时间,终于搞定,写下来免得忘记了~后续再做深入研究,哈哈!

EMQX v4 安装及组建集群、设置负载均衡相关推荐

  1. MySQL数据库集群实现负载均衡的安装配置详解

    本文我们详细地介绍了MySQL 5.0数据库集群负载均衡的安装配置工作,希望能够对您有所帮助. 本文我们主要介绍了MySQL数据库集群实现负载均衡的安装配置工作,接下来我们就让我们一起来了解一下这部分 ...

  2. 搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡

    转载:https://www.cnblogs.com/xiongze520/p/10308720.html 分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟 ...

  3. 结合Apache和Tomcat实现集群和负载均衡

    http://fableking.iteye.com/blog/360870 TomcatApacheJSP应用服务器Web  本文基本参考自 轻松实现Apache,Tomcat集群和负载均衡,经由实 ...

  4. 在Linux上使用Nginx为Solr集群做负载均衡

    在Linux上使用Nginx为Solr集群做负载均衡 在Linux上搭建solr集群时需要用到负载均衡,但测试环境下没有F5 Big-IP负载均衡交换机可以用,于是先后试了weblogic的proxy ...

  5. Nginx实现tomcat集群进行负载均衡

    一.背景 随着业务量和用户数量的激增,单一的tomcat部署应用已经无法满足性能需求,而且对于每次发布项目期间服务不可用的问题也凸显,既然出现了这个问题,那么我们本文就借助nginx来完美的解决这个问 ...

  6. Tomcat服务器集群与负载均衡实现

    一.前言 在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了.另外一个常见的问题是会产生单点故 ...

  7. 实践中整理出tomcat集群和负载均衡

    实践中整理出tomcat集群和负载均衡 来源:http://macrochen.blogdriver.com/macrochen/1207263.html (一)环境说明 (1)服务器有4台,一台安装 ...

  8. 10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡...

    10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡 原文:10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡 分布式 ...

  9. nginx与IIS服务器搭建集群实现负载均衡(二)

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(一)>中小编简 ...

最新文章

  1. Android include 标签使用
  2. 如何合并多个Django项目?
  3. ES6学习(五) -- 箭头函数
  4. 生成服务器密码的shell脚本
  5. rooibos茶中单宁酸研究
  6. python get rect 函数_python笔记之函数
  7. Linux(13)-文件权限,chmod
  8. SQL:查询、替换字符串中的回车、换行、回车换行
  9. iPads和iPhones的Media Queries(转载)
  10. Vivaldi 更新至 1.9,新的搜索引擎及各种功能修复
  11. word任意带圈数字
  12. matlab 取模二和,取模(mod)与取余(rem)的区别——Matlab学习笔记
  13. 使用 MATLAB Coder App 生成 C 代码
  14. 网络架构及其演变过程
  15. 助力低碳出行 | 基于ACM32 MCU的电动滑板车方案
  16. 鬼谷八荒修改先天气运+逆天改命
  17. Excel 插件使用教程
  18. EXCEL——图表数据标签——展示两组比较的绝对值和变化率
  19. Cosserat Rod 理论学习
  20. 面对CUDA报错的种种解决办法

热门文章

  1. [导入]升级PJBlog2.5到PJBlog2.6
  2. 虚拟乒乓球连接不上服务器,虚拟乒乓球联机版
  3. 高考结束了以后应该做的事情(个人经历的总结)
  4. 分享一个简单粗暴的网赚项目:怎么利用音频赚钱?
  5. 接收opc服务器消息,OPCClient,读取opc服务器的数据
  6. typescript-函数的类型
  7. 解决光影精灵锁win键的问题
  8. PHP常用的建站系统
  9. 安装flarum的php扩展,Flarum beta9 安装
  10. 18年迅雷区块链大赛拿了奖,感谢