EMQ --集成搭建
Posted saryli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EMQ --集成搭建相关的知识,希望对你有一定的参考价值。
集群方式接受
Erlang/OTP 最初是爱立信为开发电信设备系统设计的编程语言平台,电信设备(路由器、接入网关、…)典型设计是通过背板连接主控板卡与多块业务板卡的分布式系统。 Erlang/OTP 语言平台的分布式程序,由分布互联的 Erlang 运行系统组成,每个 Erlang 运行系统被称为节点(Node),节点(Node) 间通过 TCP 互联,消息传递的方式通信:
EMQ 消息服务器集群基于 Erlang/OTP 分布式设计,集群原理可简述为下述两条规则:
- MQTT 客户端订阅主题时,所在节点订阅成功后广播通知其他节点:某个主题(Topic)被本节点订阅。
- MQTT 客户端发布消息时,所在节点会根据消息主题(Topic),检索订阅并路由消息到相关节点。
EMQ 消息服务器同一集群的所有节点,都会复制一份主题(Topic) -> 节点(Node)映射的路由表,例如:
topic1 -> node1, node2 topic2 -> node3 topic3 -> node2, node4
EMQ集群方式分别有以下方式:
- manual 手工命令创建集群
- static 静态节点列表自动集群
- mcast UDP 组播方式自动集群
- dns DNS A 记录自动集群
- etcd 通过 etcd 自动集群
- k8s Kubernetes 服务自动集群
为了方便我们这里使用static方式关联节点为列讲解
已经搭建了两台EMQ,内网IP分别是192.168.2.111和192.168.2.112(centos7上)
首先需要修改Node名称
vim /usr/local/emqttd/etc/emq.conf node.name = [email protected] > emqttd_ctl status Node ‘[email protected]‘ is started emqttd 2.3.5 is running
修改配置文件配置使用静态方式链接节点(所有节点都需要修改)
> vim /usr/local/emqttd/etc/emq.conf cluster.discovery = static ##-------------------------------------------------------------------- ## Cluster with static node list cluster.static.seeds = [email protected],[email protected]
为了安全Erlang 节点间通过一个相同的 cookie 进行互连认证。Erlang 节点 Cookie 设置:
# 在node1上执行 > emqttd stop > emqttd start > scp $HOME/.erlang.cookie [email protected]:$HOME/.erlang.cookie
通过命令查看集群状态
> emqttd_ctl cluster status Cluster status: [{running_nodes,[‘[email protected]‘,‘[email protected]‘]}]
通过界面可以看到如下显示
总结
有了集群就解决了大规模部署的问题,但是在实际使用中还有很多需要关注的点
以上是关于EMQ --集成搭建的主要内容,如果未能解决你的问题,请参考以下文章