EMQX Newsletter 2022-06|与 HStreamDB 集成、充电桩通信协议 OCPP 网关开发…

简介: 继 EMQX 5.0.0-rc.4 发布之后,v5.0 的开发工作已经接近尾声。EMQX 团队也在对用户文档进行全面的改进和更新,不久后即将为用户带来一个更加强大易用的 EMQX 5.0。

继 EMQX 5.0.0-rc.4 发布之后,v5.0 的开发工作已经接近尾声。除了继续优化 Dashboard 的 UI/UX 以提升使用体验,和测试并修复各项 Bug 以提升软件稳定性以外,EMQX 团队也在对用户文档进行全面的改进和更新,不久后即将为用户带来一个更加强大易用的 EMQX 5.0。

云服务方面,EMQX Cloud 本月新增了JWT 认证支持,用户进行认证鉴权时又多了一种选择。此外,在交易体验上也进行了优化。

EMQX

QUIC 改进:适配 MsQuic 2.0 & 内部资源管理重构

在 EMQX 5.0 中我们提供了全球首个 MQTT over QUIC 的实现,支持用户将 MQTT 的传输层协议从 TCP 或者 WebSocket 切换至 QUIC。此前我们的 QUIC 项目是基于微软的开源项目 MsQuic 的 1.8 版本实现的。本月,我们适配了 MsQuic 2.0.2 的 API 实现并且重构了内部资源管理。相比于 MsQuic 1.8,2.0 版本带来了 OpenSSL 版本的升级和证书处理等方面的多项改进。这些改动将随 EMQX 5.0 正式版一并上线。

支持通过规则引擎将数据持久化到 HStreamDB

HStreamDB 作为 EMQ 推出的首个专为流数据设计的流数据库,拥有低时延且可靠的流数据持久化存储性能,能够轻松支持和管理大规模的数据流。本月,我们实现了 EMQX 与 HStreamDB 的集成,用户现在将可以通过规则引擎将数据持久化到 HStreamDB。目前,我们已经达成了 10w TPS 的写入性能测试,更高吞吐的压测仍在进行,目的是探索 EMQX 集成 HStream 的性能极限。此功能将在近期的版本更新中正式上线。

持久化 MQTT 消息至 HStreamDB.png

支持 OCPP over WebSocket

本月我们启动了 OCPP 协议网关的开发,OCPP 是全世界应用最为广泛的开放式充电桩通信协议。我们正在实现的是基于 WebSocket 的 OCPP-J 1.6 协议。尽管 OCPP 的最新版本已经来到了 2.0.1,但 1.6 目前仍是商业部署协议中最受欢迎的版本。OCPP 网关将提供包括充电桩连接、认证授权和透明传输等能力,此功能将在近期的版本更新中上线。

支持 OCSP Stapling

随着广大用户网络安全意识的加强,我们有越来越多的用户选择使用 TLS 来加密客户端到 EMQX 的连接。而在实际使用过程中,可能会出现证书因为私钥泄漏等原因而被吊销的情况,因此客户端和服务端都需要能够及时知道对端使用的证书是否依然合法。为了解决这一问题,我们实现了对 OCSP Stapling 的支持,相比于 OCSP,OCSP Stapling 具有更好的隐私性和连接性能。我们支持 EMQX 将携带 OCSP 响应的证书返回给客户端(用于单向认证),也支持将客户端将携带 OCSP 响应的证书发送给 EMQX(用于双向认证)。

对于一些可能不支持 OCSP 的客户端,我们将提供对 CRL(证书吊销列表) 的支持,在这过程中,我们还修复了一个 Erlang/OTP CRL 相关代码中的一个 Bug。

以上功能目前都已开发完成,但仍在测试中,它们将会在未来的版本更新中上线。

支持 Kafka 的 SASL/GSSAPI(Kerberos) 认证

Kafka 支持 SASL/GSSAPI(Kerberos) 身份验证,相比于普通的用户名密码验证,它不会在网络中传递密码,并且能够提供服务端和客户端的相互认证,具有更强的安全性。

EMQX 团队在近期启动了 Kafka SASL/GSSAPI 认证机制的开发工作。目前,我们已经完成了驱动层的开发与验证,下一步我们将为规则引擎的 Kafka 资源添加对 SASL/GSSAP 的支持。此功能同样将在近期的版本更新中正式上线。

4.3 & 4.4 维护版本升级

EMQX 开源版 v4.3.15 & v4.4.4 以及企业版 v4.3.10 & v4.4.4 已经于月初正式发布,带来了 EMQX 在 Windows 下启动失败时无错误提示等多项问题的修复和支持将 JWT 用于授权的多项功能改进。

更多改动情况的介绍我们已经在上月的 Newsletter 中有所提及,可以前往查看:https://www.emqx.com/zh/blog/emqx-newsletter-202205

或者直接查看对应版本的 Release Note 以了解更详细的信息:EMQX v4.4.4EMQX Enterprise v4.4.4

4.3 & 4.4 下一维护版本的开发目前也已接近尾声,将于近期发布,敬请期待。

EMQX Cloud

交易记录查询优化

用户现在可以通过交易时间进行搜索过滤,查找在某段时间之间的记录。同时,可以通过「交易方式」对交易记录过滤:国内用户可以查看支付宝、微信、余额或者线下汇款这四种方式过滤对应的交易记录,海外用户支持信用卡、余额、转账三种方式查询。此外,还可以通过查询交易单号找到某条记录。

MQTT Cloud.png

外部认证支持 JWT 认证

Json web token (JWT) 是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准(RFC 7519)。该 token 设计紧凑且安全,特别适用于分布式站点的单点登录(SSO)场景。JWT 的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该 token 也可直接被用于认证或加密。

用户可以在 EMQX Cloud 部署详情的左侧菜单【认证鉴权】-【外部认证鉴权】中找到。使用 JWT 的方式可以通过 Username 或 Password 携带 JWT 作为认证信息,进行对设备的认证。同时也支持配置 JWKs 服务器地址,EMQX Cloud 将从 JWKs 服务器定期查询最新的公钥列表,并用于验证收到的 JWT 是否合法,适用于 RSA 或 ECDSA 算法签发的 JWT。

MQTT Cloud JWT.png

试用部署停止后可直接转包年

在 14 天免费试用结束之后,部署将被停止并保留数日。之前,试用部署停止后如果想转为包年部署,用户需要先充值到余额,启动部署之后才可以转包年部署。现在,用户可以直接将停用的试用部署转为包年并立刻使用。在【部署概览】-【转包年】,选择需要的包年时长,创建订单支付之后就可以将部署转为包年,操作更加便捷。

MQTT Cloud1.png

EMQX Kubernetes Operator

下月初即将发布的 EMQX Operator 1.2.1 版本将如下新功能:

功能更新

  • 端口调整 pod 不会重启,对于服务稳定性进一步提升
  • 通过 EMQX Dashboard 中调整 listener,无需更改 K8s 相关配置即可自动更新
  • EMQX Plugin CRD 实现,对于插件管理更加简单方便
  • 支持通过 EMQX API 查询 EMQX 集群状态,并更新 EMQX Custom Resource 的 Status
  • 支持 EMQX 多协议监听器

完善优化

  • 修复了 EMQX Plugin 未初始化配置 Dashboard 报错的问题

即将到来

大规模分布式物联网 MQTT 消息服务器 EMQX 即将发布 5.0 版本,带来无状态节点、自动伸缩等高可用特性,EMQX Operator 也将全面支持全新的 5.0 版本,敬请期待。

目录
相关文章
|
2月前
|
JavaScript 前端开发 持续交付
Prettier 高级应用:集成 CI/CD 流水线与插件开发
【10月更文挑战第18天】Prettier 是一款流行的代码格式化工具,它能够自动将代码格式化成一致的风格,从而提高代码的可读性和维护性。对于希望进一步发挥 Prettier 潜力的高级用户而言,将 Prettier 集成到持续集成(CI)和持续部署(CD)流程中,确保每次提交的代码都符合团队标准,是非常重要的。此外,通过开发自定义插件来支持更多语言或扩展 Prettier 的功能也是值得探索的方向。本文将详细介绍这两方面的内容。
57 2
|
1月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
38 2
|
1月前
|
传感器 前端开发 Android开发
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求。本文深入探讨了插件开发的基本概念、流程、集成方法、常见类型及开发实例,如相机插件的开发步骤,同时强调了版本兼容性、性能优化等注意事项,并展望了插件开发的未来趋势。
42 2
|
1月前
|
API Docker 微服务
Ocelot集成Consul实现api网关与服务发现
本文介绍了如何在.NET微服务架构中集成API网关Ocelot和Consul服务发现。首先通过Docker安装并配置Consul,接着在GoodApi项目中实现服务的自动注册与注销,并配置健康检查。然后,通过修改Ocelot的配置文件`ocelot.json`和`Program.cs`,实现基于Consul的服务发现,确保API请求能够正确路由到后端服务。最后,解决了服务解析时可能出现的问题,确保服务的IP地址而非节点名称被正确解析。
39 0
Ocelot集成Consul实现api网关与服务发现
|
2月前
|
Dart Android开发
鸿蒙Flutter实战:03-鸿蒙Flutter开发中集成Webview
本文介绍了在OpenHarmony平台上集成WebView的两种方法:一是使用第三方库`flutter_inappwebview`,通过配置pubspec.lock文件实现;二是编写原生ArkTS代码,自定义PlatformView,涉及创建入口能力、注册视图工厂、处理方法调用及页面构建等步骤。
69 0
|
2月前
|
开发框架 监控 搜索推荐
GoFly快速开发框架集成ZincSearch全文搜索引擎 - Elasticsearch轻量级替代为ZincSearch全文搜索引擎
本文介绍了在项目开发中使用ZincSearch作为全文搜索引擎的优势,包括其轻量级、易于安装和使用、资源占用低等特点,以及如何在GoFly快速开发框架中集成和使用ZincSearch,提供了详细的开发文档和实例代码,帮助开发者高效地实现搜索功能。
201 0
|
5月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
142 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
3月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
161 0
|
4月前
|
开发者 存储 API
Xamarin 云服务集成竟然如此强大,简化后端开发不再是梦,数据存储、用户认证、推送通知全搞定!
【8月更文挑战第31天】Xamarin 是一款强大的跨平台移动应用开发工具,通过与云服务集成,显著简化了后端开发。开发者无需自行搭建服务器,即可利用云服务提供的数据存储、用户认证、推送通知等功能,大幅减少数据库设计、服务器配置及 API 开发的时间成本。借助 Azure Mobile Apps 等云服务,Xamarin 可轻松实现数据存取操作,同时增强应用安全性与用户参与度,使开发者更专注于业务逻辑和用户体验,提升开发效率并降低成本。这种方式在快速发展的移动应用领域极具价值。
64 0
|
4月前
|
数据库 开发者 Java
颠覆传统开发:Hibernate与Spring Boot的集成,让你的开发效率飞跃式提升!
【8月更文挑战第31天】在 Java 开发中,Spring Boot 和 Hibernate 已成为许多开发者的首选技术栈。Spring Boot 简化了配置和部署过程,而 Hibernate 则是一个强大的 ORM 框架,用于管理数据库交互。将两者结合使用,可以极大提升开发效率并构建高性能的现代 Java 应用。本文将通过代码示例展示如何在 Spring Boot 项目中集成 Hibernate,并实现基本的数据库操作,包括添加依赖、配置数据源、创建实体类和仓库接口,以及在服务层和控制器中处理 HTTP 请求。这种组合不仅简化了配置,还提供了一套强大的工具来快速开发现代 Java 应用程序。
294 0

热门文章

最新文章