zoukankan      html  css  js  c++  java
  • 全面替代插件:EMQ X 企业版 4.2 新增模块功能

    在即将到来的 v4.2 版本中,EMQ X 企业版提供了 模块 功能,用于替代之前的 *插件 *。该版本之后插件将置于长期维护状态,不再新增功能。

    为什么采用新的模块功能

    同插件一样, 模块 用于 EMQ X 的功能扩展,与插件不同的是,模块结合 EMQ X 分布式集群特点,解决了插件开发、使用中的各种痛点:

    • 插件配置文件难以维护:插件是基于节点的,EMQ X 集群部署时每个节点本地都有一份插件配置文件,配置文件只能在本地通过文件修改,而在模块中,配置项的变更是集群同步的。
    • 插件配置上手难度高:模块通过 Dashboard 提供了可视化配置,降低上手难度;部分配置项支持热更新,比如用户可以方便地添加 MQTT-SN 监听端口、更改认证 SQL 语句。
    • 插件停启操作不方便:集群中使用 API 与 CLI 停启插件时只能逐个节点进行操作,如果操作有遗漏,极有可能引发生产事故。
    • 版本升级困难:EMQ X 插件数量与配置项比较多,跨版本升级时如果插件配置项有变动,升级会有一定的困难;模块的配置项易于程序读写和人工维护,EMQ X 后续可以提供升级迁移相关的自动化工具,降低版本升级难度。

    模块将 EMQ X 的易用性提升了一个台阶,通过模块用户能够更快地将业务与物联网设备同 EMQ X 进行集成,缩短研发周期,降低学习、开发与维护难度。

    模块概览

    EMQ X 模块按照功能组织,分为以下几类:

    认证鉴权

    客户端连接到 EMQ X、发布/订阅主题的时候可以使用认证鉴权模块进行身份与权限验证。

    认证鉴权模块支持文件、内置数据库、JWT、外部主流数据库和自定义 HTTP API 等数据源,支持动态更改认证逻辑(如查询 SQL),动态添加、删除认证链。

    协议接入

    除了标准 MQTT 协议(完整 QoS 与 MQTT 5.0 支持),EMQ X 还扩展了一系列的物联网协议,支持的协议包括MQTT-SN、CoAP/LwM2M、HTTP、WebSocket、STOMP、私有 TCP、JT/T808 行业协议等。

    在协议接入相关模块中,用户能够快速启用需要的扩展协议,动态增改协议的监听端口,以及协议与 MQTT 主题的挂载关系。

    消息下发

    服务端下发指令到设备是物联网应用中常用的场景,EMQ X 提供多种消息下发方式,针对下行流量较大的项目,用户可以使用消息下发模块配置消费 Kafka 或 Pulsar 进行消息下发,模块能够方便地配置数据源以及 Kafka-MQTT、Pulsar-MQTT 的主题映射关系,实现高吞吐、事务级的服务端消息下发。

    多语言扩展

    包含 Python 与 Java 的扩展支持,开发者可以使用 Python 或者 Java 快速开发自己的插件,在官方功能的基础上进行扩展,满足自己的业务场景。

    多语言扩展中包含两个模块,exproto 模块用于协议扩展,可以使用 Java/Python 驱动实现特定的协议支持, exhook 模块基于 EMQ X 钩子,用户可使用 Python 和 Java 直接处理 EMQ X 各类事件,实现设备上下线、认证、ACL 规则控制,消息桥接和持久化等功能。

    运维监控

    EMQ X 提供 Prometheus Agent 模块,用于将 EMQ X 运行指标及 Erlang 虚拟机状态数据输出到第三方的监控如 Prometheus 中。通过 Prometheus 自带的 node-exporter 还可以采集 Linux 服务器相关指标,实现服务器 + EMQ X 整体运维监控。

    此外,运维监控还包含代码热加载、性能调试模块,借助两个模块可以很方便地进行测试调优,服务器调整。

    内部模块

    现版本有6 个内部模块,主要围绕 MQTT 协议使用进行功能拓展:

    MQTT 增强认证

    基于更强的安全性考虑,MQTT v5 增加了新特性 增强认证,增强认证包含质询/响应风格的认证,可以实现对客户端和服务器的双向认证,服务器可以验证连接的客户端是否是真正的客户端,客户端也可以验证连接的服务器是否是真正的服务器,从而提供了更高的安全性。

    增强认证依赖于认证方法和认证数据来完成整个认证过程,在增强认证中,认证方法通常为 SASL( Simple Authentication and Security Layer ) 机制,使用一个注册过的名称便于信息交换。但是,认证方法不限于使用已注册的 SASL 机制,服务器和客户端可以约定使用任何质询 / 响应风格的认证。

    上下线通知

    启用该模块后,客户端上下线时将在系统主题上发布一条通知消息,订阅相应的主题即可获取上下线客户端事件与客户端信息。

    Webhook 插件、规则引擎同样支持设备上下线事件处理,用户可以根据自己的需要选择不同的方式进行业务开发集成。

    MQTT 代理订阅

    该模块可以配置代理订阅信息,模块启用后,EMQ X 将在客户端连接成功时自动订阅模块配置的主题,无需客户端主动发起订阅。

    主题重写

    该模块可以配置重写规则,在客户端发布/订阅主题时将目标主题按照规则重写为新的主题。

    EMQ X 的 保留消息延迟发布 可以与主题重写配合使用,例如,当用户想使用延迟发布功能,但不方便修改客户端发布的主题时,可以使用主题重写将相关主题重写为延迟发布的主题格式。

    MQTT 保留消息

    用于 EMQ X 中 MQTT 保留消息的管理,可以配置存储位置、有效期、消息大小等参数。禁用此模块且没有启用其他保留消息功能,EMQ X 将不支持保留消息。

    延迟发布

    EMQ X 的延迟发布功能可以实现按照用户配置的时间间隔延迟发布 PUBLISH 报文的功能。当客户端使用特殊主题前缀 $delayed/{DelayInteval} 发布消息到 EMQ X 时,将触发延迟发布功能。

    该版本将于近期发布,敬请期待。

    版权声明: 本文为 EMQ 原创,转载请注明出处。

    原文链接:https://www.emqx.io/cn/blog/emqx-enterprise-v-4-2-module-features

  • 相关阅读:
    Linux 学习 step by step (1)
    ubuntu server nginx 安装与配置
    ubuntu server samba服务器配置
    iOS app集成支付宝支付流程及后台php订单签名处理
    mac 连接windows 共享内容
    linux 文件查找,which,whereis,locate,find
    ubuntu server vsftpd 虚拟用户及目录
    ubuntu server 安装 mantis bug tracker 中文配置
    ubuntu server vsftpd 匿名用户上传下载及目录设置
    linux 用户管理,用户权限管理,用户组管理
  • 原文地址:https://www.cnblogs.com/emqx/p/13728549.html
Copyright © 2011-2022 走看看