热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Centos7EMQ集群搭建

Centos7EMQ集群搭建,Go语言社区,Golang程序员人脉社

项目组主要是做IOT的,需要搭建EMQ集群来连接边缘设备到云端

5G 时代,万物互联消息引擎 | EMQ

EMQ的搭建比较简单,在此记录一下便于日后查阅。

一、EMQ简介

EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。Erlang/OTP 是出色的软实时(Soft-Realtime)、低延时(Low-Latency)、分布式(Distributed) 的语言平台。MQTT 是轻量的(Lightweight)、发布订阅模式(PubSub) 的物联网消息协议。

EMQ X 面向海量的 移动/物联网/车载 等终端接入,并实现在海量物理网设备间快速低延时的消息路由:

1、稳定承载大规模的 MQTT 客户端连接,单服务器节点支持百万连接。

2、分布式节点集群,快速低延时的消息路由,单集群支持千万规模的路由。

3、消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。

4、完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、私有 TCP/UDP 协议支持。

二、准备工作

环境是Centos7,其他的就没什么需要准备的了。

三、EMQ单机搭建

其实官方文档中介绍的已经非常清楚了,在这里我放上官方文档地址

EMQ官方文档地址

只需要按照文档中的来就可以,首先我们安装EMQ,执行以下命令

$ cd /usr/local
$ unzip emqx-centos7-v3.1.0.zip

启动 EMQ X

$ cd /usr/local/emqx
$ ./bin/emqx start
emqx 3.1.0 is started successfully!

$ ./bin/emqx_ctl status
Node 'emqx@127.0.0.1' is started
emqx v3.1.0 is running

访问  http://127.0.0.1:18083,默认用户名: admin,密码:public,如图所示:

 

三、EMQ集群搭建

首先我们先搞两台机器,然后我们在两台机器上启用以下端口

1883 MQTT 协议端口
8883 MQTT/SSL 端口
8083 MQTT/WebSocket 端口
8080 HTTP API 端口
18083 Dashboard 管理控制台端口

启用方式参照下面这篇文章

CentOS7开启端口(永久)

启用完成之后我们来修改一下配置文件

    $ vim ./etc/emqx.conf

修改以下内容

    node.name = emqx@192.168.3.204

另一台机器修改为

    node.name = emqx@192.168.3.211

这里需要注意的是,上述配置中的 emqx 指的是集群名称,在配置文件中叫做 cluster.name = emqx,这里集群名称必须一致,否则不能加入集群显示无响应(EMQ-3.1.0 版本官方文档有问题,在这里耽误了很多时间)。

修改完成之后,启动两台节点后,192.168.3.204上执行

$ ./bin/emqx_ctl cluster join emqx@192.168.3.211

Join the cluster successfully.
Cluster status: [{running_nodes,['emqx@192.168.3.204','emqx@192.168.3.211']}]

或,192.168.3.211上执行

$ ./bin/emqx_ctl cluster join emqx@192.168.3.204

Join the cluster successfully.
Cluster status: [{running_nodes,['emqx@192.168.3.204','emqx@192.168.3.211']}]

任意节点上查询集群状态:

$ ./bin/emqx_ctl cluster status

Cluster status: [{running_nodes,['emqx@192.168.3.204','emqx@192.168.3.211']}]

然后我们访问 http://192.168.3.204:18083,我们会发现两个节点已经成功运行了,如图所示:

节点退出集群,有两种方式:

1、leave: 本节点退出集群

2、force-leave: 从集群删除其他节点

emqx@192.168.3.204 主动退出集群:

    $ ./bin/emqx_ctl cluster leave

或 emqx@192.168.3.204 节点上,从集群删除emqx@192.168.3.211 节点:

    $ ./bin/emqx_ctl cluster force-leave emqx@192.168.3.211

到此EMQ集群搭建完成。


推荐阅读
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • Ansem 最新雄文:软着陆后,加密市场下阶段趋势与核心叙事
    市场最糟糕的时候已经过去,以太坊合并前不太会看到新的低点;但仍需来自关注宏观市场的不确定风险。撰文:Ansem ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • 域名解析系统DNS
    文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • php7 curl_init(),php7.3curl_init获取301、302跳转后的数据
    最近在做一个蜘蛛项目,发现在抓取数据时,有时会碰到301的页面,原本写的curl_init函数php7-远程获取api接口或网页内容&#x ... [详细]
  • 【技术分享】一个 ELF 蠕虫分析
    【技术分享】一个 ELF 蠕虫分析 ... [详细]
  • c# java socketn 字节流_C#Socket编程详解(一)TCP与UDP简介
    一、TCP与UDP(转载)1、TCP1.1定义TCP(TransmissionControlProtocol)传输控制协议。是一种可靠的、面向连接的协议(eg:打电话)、传输效率低 ... [详细]
author-avatar
mobiledu2502875483
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有