EMQ 2.2-beta.1 发布, 百万级 MQTT 消息服务器

来源: 投稿
作者: emqtt
2017-05-08

EMQ 2.2-beta.1版本正式发布。

EMQ 2.2正式支持MQTT协议多监听器配置,支持HAProxy的Proxy Protocol V1/V2。新增Web Hook插件(emq-web-hook)、Lua Hook插件(emq-lua-hook)。

MQTT协议监听器配置

一个EMQ节点可配置多个MQTT协议监听端口,例如下述配置external, internal监听器,分别用于设备连接与内部通信:

                         -------
-- External TCP 1883 --> |     |
                         | EMQ | -- Internal TCP 2883 --> Service
-- External SSL 8883-->  |     |
                         -------


EMQ 2.2 版本etc/emq.conf监听器配置方式:

listener.tcp.${name}= 127.0.0.1:2883

listener.tcp.${name}.acceptors = 16

listener.tcp.${name}.max_clients = 102400

Proxy Protocol V1/2支持

EMQ 集群通常部署在负载均衡器(LB)后面,典型架构:

              -----
              |   |
              | L | --TCP 1883--> EMQ
--SSL 8883--> |   |                |
              | B | --TCP 1883--> EMQ
              |   |
              -----

HAProxy、NGINX等常用的负载均衡器(LB),一般通过Proxy Protocol协议传递TCP连接源地址、源端口给EMQ。

EMQ 2.2 版本的监听器开启Proxy Protocol支持:

## Proxy Protocol V1/2
## listener.tcp.${name}.proxy_protocol = on
## listener.tcp.${name}.proxy_protocol_timeout = 3s

Web Hook插件

新增WebHook插件: emq-web-hook ,支持在MQTT客户端上下线、消息发布订阅时触发WebHook回调。

Lua Hook插件

新增Lua Hook插件: emq-lua-hook ,支持Lua脚本注册EMQ扩展钩子来开发插件。

改进认证链设计

EMQ 2.2 版本改进认证链设计,当前认证模块返回ignore(例如用户名不存在等情况下),认证请求将继续转发后面认证模块:

           -------------           ------------           -------------
Client --> | Redis认证 | -ignore-> | HTTP认证 | -ignore-> | MySQL认证 |
           -------------           ------------           -------------
                 |                       |                       |
                \|/                     \|/                     \|/
           allow | deny            allow | deny            allow | deny

支持bcrypt密码Hash

EMQ 2.2 版本支持bcrypt密码Hash方式,例如Redis认证插件配置:

auth.redis.password_hash = bcrypt

etc/emq.conf配置变更

'mqtt.queue.*' 配置变更为 'mqtt.mqueue.*'

emq-dashboard

WebSocket页面支持Unsubscribe

展开阅读全文
39 收藏
分享
加载中
精彩评论

引用来自“hg_tyf2013”的评论

VerneMQ 抄的不错😊
VerneMQ只一个工程师都快挂了,你这种屌丝思维有意思吗?VerneMQ最早参考EMQ做的,至今topic模块还是是copy的emqttd_topic, Proxy Protocol是copy ranch的。EMQ 2.2发布的两个插件,Web Hook是来自社区Sakib Sami贡献,Lua Hook是来自客户需求,Proxy Protocol是合并eSockd几个月前的升级。一个产品发布新闻,也能引来键盘屌丝!
2017-05-08 16:27
2
举报
最新评论 (4)

引用来自“hg_tyf2013”的评论

VerneMQ 抄的不错😊
VerneMQ只一个工程师都快挂了,你这种屌丝思维有意思吗?VerneMQ最早参考EMQ做的,至今topic模块还是是copy的emqttd_topic, Proxy Protocol是copy ranch的。EMQ 2.2发布的两个插件,Web Hook是来自社区Sakib Sami贡献,Lua Hook是来自客户需求,Proxy Protocol是合并eSockd几个月前的升级。一个产品发布新闻,也能引来键盘屌丝!
2017-05-08 16:27
2
回复
举报
------------- ------------ -------------
Client --> | Redis认证 | -ignore-> | HTTP认证 | -ignore-> | MySQL认证 |
------------- ------------ -------------
| | |
\|/ \|/ \|/
allow | deny allow | deny allow | deny

这种是什么画图工具?
2017-05-08 14:20
0
回复
举报
认证链不错 类是freeradius的设计
2017-05-08 10:25
0
回复
举报
更多评论
6 评论
39 收藏
分享
返回顶部
顶部