博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EMQ --集成搭建
阅读量:4647 次
发布时间:2019-06-09

本文共 1450 字,大约阅读时间需要 4 分钟。

集群方式接受

Erlang/OTP 最初是爱立信为开发电信设备系统设计的编程语言平台,电信设备(路由器、接入网关、…)典型设计是通过背板连接主控板卡与多块业务板卡的分布式系统。 Erlang/OTP 语言平台的分布式程序,由分布互联的 Erlang 运行系统组成,每个 Erlang 运行系统被称为节点(Node),节点(Node) 间通过 TCP 互联,消息传递的方式通信:

EMQ 消息服务器集群基于 Erlang/OTP 分布式设计,集群原理可简述为下述两条规则:

  • MQTT 客户端订阅主题时,所在节点订阅成功后广播通知其他节点:某个主题(Topic)被本节点订阅。
  • MQTT 客户端发布消息时,所在节点会根据消息主题(Topic),检索订阅并路由消息到相关节点。

EMQ 消息服务器同一集群的所有节点,都会复制一份主题(Topic) -> 节点(Node)映射的路由表,例如:

topic1 -> node1, node2topic2 -> node3topic3 -> 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.confnode.name = emq@192.168.2.111> emqttd_ctl statusNode 'emq@192.168.2.111' is startedemqttd 2.3.5 is running

修改配置文件配置使用静态方式链接节点(所有节点都需要修改)

> vim /usr/local/emqttd/etc/emq.conf cluster.discovery = static##--------------------------------------------------------------------## Cluster with static node listcluster.static.seeds = emq@192.168.2.111,emq@192.168.2.112

为了安全Erlang 节点间通过一个相同的 cookie 进行互连认证。Erlang 节点 Cookie 设置:

# 在node1上执行> emqttd stop> emqttd start> scp $HOME/.erlang.cookie root@192.168.2.112:$HOME/.erlang.cookie

通过命令查看集群状态

> emqttd_ctl cluster statusCluster status: [{running_nodes,['emq@192.168.2.111','emq@192.168.2.112']}]

通过界面可以看到如下显示

 

  

总结

有了集群就解决了大规模部署的问题,但是在实际使用中还有很多需要关注的点

转载于:https://www.cnblogs.com/saryli/p/9784032.html

你可能感兴趣的文章
团队冲刺04
查看>>
我的Python分析成长之路8
查看>>
泛型在三层中的应用
查看>>
SharePoint2010 -- 管理配置文件同步
查看>>
.Net MVC3中取得当前区域的名字(Area name)
查看>>
获得屏幕像素以及像素密度
查看>>
int与string转换
查看>>
adb命令 判断锁屏
查看>>
推荐一个MacOS苹果电脑系统解压缩软件
查看>>
1035等差数列末项计算
查看>>
CDMA鉴权
查看>>
ASP.NET MVC Identity 兩個多個連接字符串問題解決一例
查看>>
过滤器与拦截器区别
查看>>
USACO 1.5.4 Checker Challenge
查看>>
第二阶段站立会议7
查看>>
[18]Debian Linux Install GNU GCC Compiler and Development Environment
查看>>
JAVA多线程
查看>>
ACE(Adaptive Communication Environment)介绍
查看>>
delphi 更改DBGrid 颜色技巧
查看>>
python编码问题
查看>>