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 连接:

  1. 注册 NGINX Plus 试用版,Ubuntu 下安装: https://cs.nginx.com/repo_setup
  2. 创建 EMQ 节点集群,例如:
节点 IP 地址
emq1 192.168.0.2
emq2 192.168.0.3
  1. 配置 /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集群搭建的更多相关文章

  1. 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)

    Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  2. 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)

    Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  3. 【Data Cluster】真机环境下MySQL数据库集群搭建

    真机环境下MySQL-Cluster搭建文档  摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...

  4. (四)Spark集群搭建-Java&Python版Spark

    Spark集群搭建 视频教程 1.优酷 2.YouTube 安装scala环境 下载地址http://www.scala-lang.org/download/ 上传scala-2.10.5.tgz到m ...

  5. (三)Spark-Hadoop集群搭建-Java&Python版Spark

    Spark-Hadoop集群搭建 视频教程: 1.优酷 2.YouTube 配置java 启动ftp [root@master ~]# /etc/init.d/vsftpd restart 关闭 vs ...

  6. Mosquitto搭建Android推送服务(三)Mosquitto集群搭建

    文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 如果需要做并发量很大的时候就需要考虑做集群处理,但是我在查找资料的时候发现并不多,所以整理了一下,搭建简 ...

  7. Mongodb集群搭建的三种方式

    转自:http://blog.csdn.net/luonanqin/article/details/8497860 MongoDB是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key- ...

  8. 分布式架构中一致性解决方案——Zookeeper集群搭建

    当我们的项目在不知不觉中做大了之后,各种问题就出来了,真jb头疼,比如性能,业务系统的并行计算的一致性协调问题,比如分布式架构的事务问题, 我们需要多台机器共同commit事务,经典的案例当然是银行转 ...

  9. 从零自学Hadoop(06):集群搭建

    阅读目录 序 集群搭建 监控 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一 ...

随机推荐

  1. JSP学习(2)

    JSP学习(2) JSP简介 Java Server Page,其根本是一个简单Servlet设计. 常用的动态网站开发技术 JSP:安全性高,适合开发大型的,企业级或分布式的Web应用程序. Asp ...

  2. xxPay搭建步骤

    随着电子商务的发展,移动支付也走进我们的日常生活,就像很多基础业务,如物流.云平台一样,我们现在做什么都离不开她.正因为如此,支付是当下最活跃最前沿的话题,很多流行的技术最早用来实现支付,很多新的业务 ...

  3. BZOJ-1907 树的路径覆盖 贪心

    题意:给一个n个点的树,求树的最小路径覆盖.(这个最小路径覆盖不能有重点) 解法:往图论方向想很久,想得太复杂了,其实直接贪心.这个大佬题解写得很好: https://blog.csdn.net/bl ...

  4. windows 2003 系统管理员debug

  5. 2018-09-10-weekly

    Algorithm 删除链表的倒数第N个节点 What:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. How:这是一道典型的利用双指针法解题.首先让指针first指向头节点,然后 ...

  6. mitmproxy 使用mitmdump 过滤请求

    mitmproxy 抓包工具,优点可以使用python进行二次开发,或者进行接口的mock 官网地址:https://www.mitmproxy.org/ 打算用这个最初的需求是,想对app做接口测试 ...

  7. LeetCode--041--缺失的第一个整数(java)

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11 ...

  8. python-Exception异常使用

    Exception #自定义异常类 ,MyInputExcp继承Exception异常 class MyInputExcp(Exception): def __init__(self, lenght, ...

  9. Centos中文语言乱码解决方法

    vim /etc/locale.conf 添加:LANG="zh_CN.UTF-8" 执行一下source /etc/locale.conf,使刚修改的文件生效

  10. 【大量干货】史上最完整的Tengine HTTPS原理解析、实践与调试

    本文邀请阿里云CDN HTTPS技术专家金九,分享Tengine的一些HTTPS实践经验.内容主要有四个方面:HTTPS趋势.HTTPS基础.HTTPS实践.HTTPS调试. 一.HTTPS趋势 这一 ...