• EMQX 近期更新:规则引擎新增多项 SQL 函数以及 Tablestore 集成


    EMQX 是一款云原生分布式物联网接入平台,通过一体化的分布式 MQTT 消息服务和强大的 IoT 规则引擎,为高可靠、高性能的物联网实时数据移动、处理和集成提供动力,「随处运行,无限连接,任意集成」,助力企业快速构建关键业务的 IoT 平台与应用。

    官网地址:http://www.emqx.com/zh/products/emqx

    EMQX 团队近日宣布:EMQX 开源版 v4.3.15、开源版 v4.4.4 与企业版 v4.3.10、企业版 v4.4.4 四个维护版本现已正式发布!

    此次发布进一步完善了规则引擎,为其新增了多个 SQL 函数、新的持久化数据库集成等,同时支持客户端使用 JWT 携带权限信息。此外还修复了多项目前的已知 BUG,欢迎下载使用:https://www.emqx.com/zh/try?product=enterprise

    规则引擎新功能

    为规则引擎 SQL 增加更多的时间转换函数

    包含版本 开源版 v4.3.15 开源版 v4.4.4 企业版 v4.3.10 企业版 v4.4.4

    规则引擎支持更多时间转换函数,用于支持时间与日期格式转换处理,更多使用方式请参照 文档

    now_timestamp() = 1650874276
    now_timestamp('millisecond') = 1650874318331
    now_rfc3339() = '2022-04-25T16:08:41+08:00'
    now_rfc3339('millisecond') = '2022-04-25T16:10:10.652+08:00'
    unix_ts_to_rfc3339(1650874276) = '2022-04-25T16:11:16+08:00'
    unix_ts_to_rfc3339(1650874318331, 'millisecond') = '2022-04-25T16:11:58.331+08:00'
    rfc3339_to_unix_ts('2022-04-25T16:11:16+08:00') = 1650874276
    rfc3339_to_unix_ts('2022-04-25T16:11:58.331+08:00', 'millisecond') = 1650874318331
    format_date('second', '+0800', '%Y-%m-%d %H:%M:%S%:z', 1653561612) = '2022-05-26 18:40:12+08:00'
    format_date('second', 'local', '%Y-%m-%d %H:%M:%S%:z') = "2022-05-26 18:48:01+08:00"
    format_date('second', 0, '%Y-%m-%d %H:%M:%S%:z') = '2022-05-26 10:42:41+00:00'
    date_to_unix_ts('second', '%Y-%m-%d %H:%M:%S%:z', '2022-05-26 18:40:12+08:00') = 1653561612
    date_to_unix_ts('second', 'local', '%Y-%m-%d %H-%M-%S', '2022-05-26 18:40:12') = 1653561612
    date_to_unix_ts('second', '%Y-%m-%d %H-%M-%S', '2022-05-26 10:40:12') = 1653561612
    

    为规则引擎 SQL 增加 float2str/2 函数,支持指定浮点输出精度

    包含版本 开源版 v4.3.15 开源版 v4.4.4 企业版 v4.3.10 企业版 v4.4.4

    将浮点型数字以指定精度转换为字符串:

    float2str(20.2, 10) = '20.2'
    float2str(20.2, 17) = '20.19999999999999928'
    

    规则引擎支持消息持久化到 Alibaba TableStore

    包含版本 企业版 v4.4.4

    表格存储(Tablestore)是阿里云推出的一款云上的结构化数据存储产品,通过 EMQX 的规则引擎实现与 Tablestore 集成,用户可以利用可视化的规则引擎配置界面,快速便捷实现设备元数据、时序数据、消息数据快速集成入库。

    规则引擎支持使用 Basic 和 JWT 认证连接 Pulsar

    包含版本 企业版 v4.3.10 企业版 v4.4.4

    Pulsar 支持使用基于 JSON Web 令牌( RFC-7519 ) 的 token 对客户端进行身份验证。本次更新支持 Basic 和 JWT 认证,用户可在创建 Pulsar 资源时指定。

    规则引擎

    规则引擎支持 Oracle Database RAC

    包含版本 企业版 v4.3.10 企业版 v4.4.4

    Oracle Real Application Clusters (RAC) 支持用户跨多个服务器运行单一 Oracle 数据库,访问共享存储,最大限度提高可用性和水平可扩展性。连接至 Oracle RAC 实例后,无需修改应用,用户会话即可执行故障切换,安全重播中断期间的变更请求,最终用户完全不会感知到中断。

    EMQX 提供 service_name 选项可以连接至 Oracle RAC 集群。

    其他主要新增功能

    支持 JWT 携带客户端权限信息

    包含版本 开源版 v4.3.15 开源版 v4.4.4 企业版 v4.3.10 企业版 v4.4.4

    此前 EMQX 支持将 JWT 用于客户端认证,此版本中我们扩展该功能,为 JWT Payload 添加额外的字段 acl 用于存放客户端发布/订阅权限,实现身份认证与权限管理一体。

    以下是示例 Payload,声明使用该 Token 的客户端允许订阅 a/b c/+ %u/%c 主题,允许向 a/b c/+ %u/%c 主题:

    {
      "sub": "emqx",
      "name": "John Doe",
      "iat": 1516239022,
      "exp": 1516239122,
      "acl": {
        "sub": [
          "a/b",
          "c/+",
          "%u/%c"
        ],
        "pub": [
          "a/b",
          "c/+",
          "%u/%c"
        ]
      }
    }
    

    特别说明:

    • %u %c 是变量占位符,实际运行时将分别被替换为当前客户端的用户名和客户端 ID。
    • 优先级:JWT 鉴权 > 其他鉴权插件。
    • 目前 JWT 鉴权仅支持白名单模式,需要设置 acl_nomatch = deny 确保拒绝权限列表外的操作。

    内置数据库认证鉴权 REST API 支持多条件查询参数

    包含版本 开源版 v4.3.15 开源版 v4.4.4 企业版 v4.3.10 企业版 v4.4.4

    内置数据库认证授权功能(emqx_auth_mnesia 插件)相关 REST API 支持用户名、客户端 ID 模糊搜索和主题精确搜索,以便用户从大量数据中检索需要的数据,详细 API 请参照 文档

    认证数据支持查询参数:

    Name Type Required Description
    _like_clientid String False 客户端标识符,子串方式模糊查找
    _like_username String False 客户端用户名,子串方式模糊查找

    ACL 数据支持查询参数:

    Name Type Required Description
    access Enum False 是否允许 deny, allow
    action Enum False 动作 可取值有:pub,sub,pubsub
    topic String False MQTT 主题
    _like_clientid String False 客户端标识符,子串方式模糊查找

    客户端 REST API 新增消息队列长度和丢弃消息数量过滤参数

    包含版本 开源版 v4.3.15 开源版 v4.4.4 企业版 v4.3.10 企业版 v4.4.4

    此功能旨在于对发生过消息丢弃的客户端进行快速定位和问题排查,用户可以通过 REST API 查找出队列已满/即将满(mqueue_len 参数)、出现过消息丢弃现象(mqueue_dropped 参数)的客户端:

    客户端 REST API

    更多功能优化

    • 改进认证相关指标,降低其理解难度
    • 支持将 REST API 的监听器(8081 端口)绑定到指定的 IP 地址上
    • 企业版支持通过 Dashboard 上传更新 License
    • 支持配置日志时间格式
    • 当 use_username_as_clientid 配置为 true 且客户端连接时未指定 username,现在将拒绝连接并返回 0x85 原因码
    • App secret 从部分随机改为完全随机,提供更高的安全性
    • 通过 CLI 进行备份恢复时,不再要求备份文件必须位于 EMQX 数据目录的 backup 文件夹下
    • 热升级检查,现在不兼容版本之间的热升级将被拒绝
    • 允许 EMQX 的安装路径中有空格
    • 无效的节点将在启动时报错,并提供可读的错误信息

    BUG 修复

    各版本 BUG 修复详情请查看:

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

    原文链接:https://www.emqx.com/zh/blog/emqx-update-several-new-sql-functions-and-tablestore-integration-for-rules-engine

  • 相关阅读:
    使用正向proxy 连调部署在k8s 中的spring cloud 中的rest服务
    goflow golang 的基于flow的编程库
    gvm golang 的多版本工具
    jvm-profiler 学习试用
    httpdiff http 请求diff 工具
    tengine lua 模块docker 镜像集成
    tengine 支持dubbo 的docker镜像
    openresty ngx.location.capture http2 问题
    systemd 使用rc.local 说明
    revel golang的全栈开发框架
  • 原文地址:https://www.cnblogs.com/emqx/p/16371658.html
Copyright © 2020-2023  润新知