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 版本,敬请期待。

目录
相关文章
|
1月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
111 0
|
2月前
|
开发者 存储 API
Xamarin 云服务集成竟然如此强大,简化后端开发不再是梦,数据存储、用户认证、推送通知全搞定!
【8月更文挑战第31天】Xamarin 是一款强大的跨平台移动应用开发工具,通过与云服务集成,显著简化了后端开发。开发者无需自行搭建服务器,即可利用云服务提供的数据存储、用户认证、推送通知等功能,大幅减少数据库设计、服务器配置及 API 开发的时间成本。借助 Azure Mobile Apps 等云服务,Xamarin 可轻松实现数据存取操作,同时增强应用安全性与用户参与度,使开发者更专注于业务逻辑和用户体验,提升开发效率并降低成本。这种方式在快速发展的移动应用领域极具价值。
47 0
|
2月前
|
数据库 开发者 Java
颠覆传统开发:Hibernate与Spring Boot的集成,让你的开发效率飞跃式提升!
【8月更文挑战第31天】在 Java 开发中,Spring Boot 和 Hibernate 已成为许多开发者的首选技术栈。Spring Boot 简化了配置和部署过程,而 Hibernate 则是一个强大的 ORM 框架,用于管理数据库交互。将两者结合使用,可以极大提升开发效率并构建高性能的现代 Java 应用。本文将通过代码示例展示如何在 Spring Boot 项目中集成 Hibernate,并实现基本的数据库操作,包括添加依赖、配置数据源、创建实体类和仓库接口,以及在服务层和控制器中处理 HTTP 请求。这种组合不仅简化了配置,还提供了一套强大的工具来快速开发现代 Java 应用程序。
62 0
|
2月前
|
前端开发 Java UED
JSF遇上Material Design:一场视觉革命,如何让传统Java Web应用焕发新生?
【8月更文挑战第31天】在当前的Web开发领域,用户体验和界面美观性至关重要。Google推出的Material Design凭借其独特的动画、鲜艳的颜色和简洁的布局广受好评。将其应用于JavaServer Faces(JSF)项目,能显著提升应用的现代感和用户交互体验。本文介绍如何通过PrimeFaces等组件库在JSF应用中实现Material Design风格,包括添加依赖、使用组件及响应式布局等步骤,为用户提供美观且功能丰富的界面。
34 0
|
2月前
|
持续交付 测试技术 jenkins
JSF 邂逅持续集成,紧跟技术热点潮流,开启高效开发之旅,引发开发者强烈情感共鸣
【8月更文挑战第31天】在快速发展的软件开发领域,JavaServer Faces(JSF)这一强大的Java Web应用框架与持续集成(CI)结合,可显著提升开发效率及软件质量。持续集成通过频繁的代码集成及自动化构建测试,实现快速反馈、高质量代码、加强团队协作及简化部署流程。以Jenkins为例,配合Maven或Gradle,可轻松搭建JSF项目的CI环境,通过JUnit和Selenium编写自动化测试,确保每次构建的稳定性和正确性。
44 0
|
2月前
|
前端开发 Devops 持续交付
【前端自动化新高度】Angular与Azure DevOps完美结合:从零构建持续集成与持续部署的全自动流水线,提升开发效率与软件交付质量!
【8月更文挑战第31天】Angular作为领先的前端框架,以强大功能和灵活性深受开发者喜爱。Azure DevOps提供一站式DevOps服务,涵盖源码管理、持续集成(CI)及持续部署(CD)。本文将指导你如何在Azure DevOps中搭建Angular项目的CI/CD流程,并通过具体示例代码展示整个过程。首先,我们将创建一个Angular项目并初始化Git仓库;然后,在Azure DevOps中设置CI流水线,定义YAML文件以自动化构建和部署流程。最终实现每次提交代码后自动构建并部署至Azure Web App,极大提升了开发效率和软件交付速度,使团队更专注于创新。
19 0
|
2月前
|
消息中间件 NoSQL 调度
Django后端架构开发:Django 与 Celery 的深度集成
Django后端架构开发:Django 与 Celery 的深度集成
87 0
|
3月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
88 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
3月前
|
Linux
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
《FFmpeg开发实战》书中介绍了直播的RTSP和RTMP协议,以及新协议SRT和RIST。SRT是安全可靠传输协议,RIST是可靠的互联网流传输协议,两者于2017年发布。腾讯视频云采用SRT改善推流卡顿。以下是Linux环境下为FFmpeg集成libsrt和librist的步骤:下载安装源码,配置、编译和安装。要启用这些库,需重新配置FFmpeg,添加相关选项,然后编译和安装。成功后,通过`ffmpeg -version`检查版本信息以确认启用SRT和RIST支持。详细过程可参考书中相应章节。
62 1
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
|
3月前
|
应用服务中间件 Linux nginx
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
《FFmpeg开发实战》书中介绍了如何使用FFmpeg向网络推流,简单流媒体服务器MediaMTX不适用于复杂业务。nginx-rtmp是Nginx的RTMP模块,提供基本流媒体服务。要在Linux上集成rtmp,需从官方下载nginx和nginx-rtmp-module源码,解压后在nginx目录配置并添加rtmp模块,编译安装。配置nginx.conf启用RTMP服务,监听1935端口。使用ffmpeg推流测试,如能通过VLC播放,表明nginx-rtmp运行正常。更多详情见书本。
90 0
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
下一篇
无影云桌面