Emqtt集群搭建
1 Emqtt简单搭建
1.1 介绍:EMQ:EMQ 2.0,号称百万级开源MQTT消息服务器,基于Erlang/OTP语言平台开发,支持大规模连接和分布式集群,发布订阅模式的开源MQTT消息服务器。
EMQ 默认开启的 MQTT 服务 TCP 端口:
| 1883 | MQTT 协议端口 |
| 8883 | MQTT/SSL 端口 |
| 8083 | MQTT/WebSocket 端口 |
| 8084 | MQTT/WebSocket/SSL 端口 |
防火墙根据使用的 MQTT 接入方式,开启上述端口的访问权限。
EMQ 节点集群使用的 TCP 端口:
| 4369 | 集群节点发现端口 |
| 6369 | 集群节点控制通道 |
集群节点间如有防护墙,需开启上述 TCP 端口互访权限
1.2 集群创建方式
NGINX Plus -> EMQ 集群
NGINX Plus 产品作为 EMQ 集群 LB,并终结 SSL 连接:
- 注册 NGINX Plus 试用版,Ubuntu 下安装: https://cs.nginx.com/repo_setup
- 创建 EMQ 节点集群,例如:
| 节点 | IP 地址 |
|---|---|
| emq1 | 192.168.0.2 |
| emq2 | 192.168.0.3 |
配置 /etc/nginx/nginx.conf,示例:
stream {
# Example configuration for TCP load balancing upstream stream_backend {
zone tcp_servers 64k;
hash $remote_addr;
server 192.168.0.2:1883 max_fails=2 fail_timeout=30s;
server 192.168.0.3:1883 max_fails=2 fail_timeout=30s;
} server {
listen 8883 ssl;
status_zone tcp_server;
proxy_pass stream_backend;
proxy_buffer_size 4k;
ssl_handshake_timeout 15s;
ssl_certificate /etc/emqttd/certs/cert.pem;
ssl_certificate_key /etc/emqttd/certs/key.pem;
}
}
1.3 搭建EMQTT单机版
通用包下载地址:
| CentOS7 | http://emqtt.com/downloads/latest/centos7 |
[root@emq-node1 opt]# ll
total 20020
-rw-r--r-- 1 root root 20497451 Aug 23 2018 emqttd-centos7-v2.3.11.zip
[root@emq-node1 opt]# unzip emqttd-centos7-v2.3.11.zip &>/dev/null
[root@emq-node1 opt]# cd emqttd/
#启动EMQTT
[root@emq-node1 emqttd]# ./bin/emqttd start
emqttd 2.3.11 is started successfully!
#查看EMQTT集群状态
[root@emq-node1 emqttd]# ./bin/emqttd_ctl status
Node 'emq@127.0.0.1' is started
emqttd 2.3.11 is running
#WEB的URL状态监控
[root@emq-node1 emqttd]# curl http://localhost:8080/status
Node emq@127.0.0.1 is started
emqttd is running
1.4 单机变器群
#emqttd-node1先关闭服务
[root@emq-node1 emqttd]# ./bin/emqttd stop
#原配置文件
[root@emq-node1 emqttd]# egrep '127.0.0.1' etc/emq.conf|egrep -v '#'
node.name = emq@127.0.0.1
listener.tcp.internal = 127.0.0.1:11883
#更改配置文件
[root@emq-node2 emqttd]# hostname -I
10.0.0.101
[root@emq-node1 emqttd]# sed -i 's#127.0.0.1#10.0.0.101#g' etc/emq.conf
[root@emq-node1 emqttd]# egrep '10.0.0.101' etc/emq.conf|egrep -v '#'
node.name = emq@10.0.0.101
listener.tcp.internal = 10.0.0.101:11883
#在启动服务
[root@emq-node1 emqttd]# ./bin/emqttd start
emqttd 2.3.11 is started successfully!
#emqttd-nod2重复操作
[root@emq-node2 emqttd]# ./bin/emqttd stop
ok
[root@emq-node2 emqttd]# hostname -I
10.0.0.102
[root@emq-node2 emqttd]# sed -i 's#127.0.0.1#10.0.0.102#g' etc/emq.conf
[root@emq-node2 emqttd]# ./bin/emqttd start
emqttd 2.3.11 is started successfully!
#手动加入集群
[root@emq-node2 emqttd]# ./bin/emqttd_ctl cluster join emq@10.0.0.101
Join the cluster successfully.
Cluster status: [{running_nodes,['emq@10.0.0.101','emq@10.0.0.102']}]
[root@emq-node2 emqttd]# ./bin/emqttd_ctl cluster status
Cluster status: [{running_nodes,['emq@10.0.0.101','emq@10.0.0.102']}]
#重节点中删除
[root@emq-node2 emqttd]# ./bin/emqttd_ctl cluster leave
Leave the cluster successfully.
Cluster status: [{running_nodes,['emq@10.0.0.102']}]
#配置文件中指定集群节点,两台机器操作一致先关闭EMQTT
[root@emq-node1 emqttd]# egrep -n "cluster.static.seeds|cluster.discovery" etc/emq.conf
23: cluster.discovery = static #默认是manual手动创建集群,集群节点
49:cluster.static.seeds = emq@10.0.0.101,emq@10.0.0.102
1.5 Web管理界面
#默认账号密码admin public

扩展插件以及优化详见官方文档:http://emqtt.com/docs/v2/index.html
Emqtt集群搭建的更多相关文章
- 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)
Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...
- 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)
Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...
- 【Data Cluster】真机环境下MySQL数据库集群搭建
真机环境下MySQL-Cluster搭建文档 摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...
- (四)Spark集群搭建-Java&Python版Spark
Spark集群搭建 视频教程 1.优酷 2.YouTube 安装scala环境 下载地址http://www.scala-lang.org/download/ 上传scala-2.10.5.tgz到m ...
- (三)Spark-Hadoop集群搭建-Java&Python版Spark
Spark-Hadoop集群搭建 视频教程: 1.优酷 2.YouTube 配置java 启动ftp [root@master ~]# /etc/init.d/vsftpd restart 关闭 vs ...
- Mosquitto搭建Android推送服务(三)Mosquitto集群搭建
文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 如果需要做并发量很大的时候就需要考虑做集群处理,但是我在查找资料的时候发现并不多,所以整理了一下,搭建简 ...
- Mongodb集群搭建的三种方式
转自:http://blog.csdn.net/luonanqin/article/details/8497860 MongoDB是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key- ...
- 分布式架构中一致性解决方案——Zookeeper集群搭建
当我们的项目在不知不觉中做大了之后,各种问题就出来了,真jb头疼,比如性能,业务系统的并行计算的一致性协调问题,比如分布式架构的事务问题, 我们需要多台机器共同commit事务,经典的案例当然是银行转 ...
- 从零自学Hadoop(06):集群搭建
阅读目录 序 集群搭建 监控 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一 ...
随机推荐
- 【focus-lei 】微服务
随笔分类 - 微服务 .net core使用NLog+Elasticsearch记录日志 摘要:在微服务或分布式系统中,如果将日志作为文件输出,查看系统日志将非常不便:如果将日志保存到数据库中,又不能 ...
- C# 同步调用 异步调用 异步回调 多线程的作用
同步调用 : 委托的Invoke方法用来进行同步调用.同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行. 异步调用 :同步调用会阻塞线程,如果是要调用一项繁重的 ...
- ElasticSearch 入门介绍
tags: 第三方 lucene [toc] 1. what Elastic Search(ES)是什么 全文检索和lucene 全文检索 优点:高效,准确,分词全文检索允许用户输入一些关键字,从数据 ...
- CentOS7搭建Hadoop2.8.0集群及基础操作与测试
环境说明 示例环境 主机名 IP 角色 系统版本 数据目录 Hadoop版本 master 192.168.174.200 nameNode CentOS Linux release 7.4.1708 ...
- Maya2017下载安装与激活
目录 1. 更多推荐 2. 下载地址 2.1. OneDrive 2.2. 百度云 3. 安装激活步骤 1. 更多推荐 其他Maya版本的下载与激活:https://www.cnblogs.com/c ...
- EF core 实现读写分离解决方案
我们公司2019年web开发已迁移至.NET core,目前有部分平台随着用户量增加,单一数据库部署已经无法满足我们的业务需求,一直在寻找EF CORE读写分离解决方案,目前在各大技术论坛上还没找到很 ...
- 安装kali linux 后出现文字乱码问题
在安装kali时我选择中文安装,结果安装完成后出现文字乱码现象 在经过上网查询后,采用了CSDN博客站中的 stubbornness1219 这位博主的解决方案成功将问题解决. 解决方案:终端下执行s ...
- nginx http正向代理简单配置及systemd 配置
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...
- 2018-10-01-weekly
Algorithm 77. 组合 What 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合. How 利用递归的思想,当凑够k个数时,就回退回去,remove掉一个数,在 ...
- mysql 乐观锁、悲观锁、共享锁,排它锁
mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对mysql中行级锁中的共享锁与排他锁进行分享交流. 共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能 ...