规则引擎与 LwM2M 重大改进!EMQ X 企业版 4.2.2 正式发布就在三天后!全球多一秒钟,你想和谁一起过?

众所周知,现行公历中,平年有365天,闰年有366天。如何用“整除法”判断闰年,这事连小学生都清楚;农历中有闰月,“十九年七闰”的传言也颇为流行。但“闰秒”,究竟又是怎么一回事?

2012年我们已经见识过一次“闰秒”了,今年它将再次到来——协调世界时(UTC)2015年6月30日23:59:59之后要加上一个“23:59:60”,它就是闰秒。对于东八区的人来说,这一秒会发生在7月1日07:59:60。


EMQ X Enterprise 企业级物联网 MQTT 消息平台,支持百万级物联网设备一站式接入、MQTT&CoAP 多协议处理、低时延实时消息通信。支持基于 SQL 的内置规则引擎,灵活处理/转发消息到后端服务,存储消息数据到各种数据库,或桥接 Kafka、RabbitMQ 等企业中间件。

规则引擎与 LwM2M 重大改进!EMQ X 企业版 4.2.2 正式发布就在三天后!全球多一秒钟,你想和谁一起过?(图1)



EMQ X Enterprise 适用于各种物联网应用场景,助力企业快速构建物联网应用,并支持公有云、私有云、物理机、容器/K8S 任意部署。

7月1日早上7点59分60秒,你打算和谁度过这“偷来的一秒”?

网址:https://www.emqx.io/cn/products/enterprise


天文时,最自然的计时系统

要搞清楚闰秒,先得从历法的历史说起。历法是在天文观测中产生的。寒来暑往,日升日落,经过对自然节律漫长的观察,古人逐渐认识到年、月、日等时间概念。

下载:无需提供任何信息, 立即下载试用:https://www.emqx.io/cn/downloads#enterprise(可直接点击「阅读原文」)

1年,即1个寒暑周期,也就是约等于地球绕太阳一周的时间。更准确地说,真正的寒暑周期是太阳在黄道上运行1周的时间,即为1个“回归年”。月的概念则来自月亮的运行,月亮的圆缺周期就是“月”,或者叫“朔望月”。现行公历中也借用了这个概念,虽然它不再反映月相变化。“日”的概念最为自然,因为日夜的周期性最明显。我们取太阳两次到达某个点的时间差为一日,定义为“太阳日”。至于比年月日更小的时间单位,则是在“日”的基础上平分得到的。

规则引擎与 LwM2M 重大改进!EMQ X 企业版 4.2.2 正式发布就在三天后!全球多一秒钟,你想和谁一起过?(图2)

有了年、月、日的概念,就可以构建历法系统。根据细节的区别,历史上曾经有过很多种历法系统,但它们都是在天体运行基础上建立起来的,所以这样的历法系统统称为“天文历”。

天文历的优越性不言而喻,但它所确定的天文时标有一个巨大缺陷,那就是时间长度的不均匀性。比如,如果地球自转速度发生了变化,那么由此得出的时间长度也会发生变化。

而随着科学技术的发展,对时间的精度要求越来越高,在很多精密科学中,失之“毫秒”,谬以千里。天文时的精度已经远远不能满足现代社会的需要,于是,原子时便诞生了。

规则引擎与 LwM2M 重大改进!EMQ X 企业版 4.2.2 正式发布就在三天后!全球多一秒钟,你想和谁一起过?(图3)


         概览         

EMQ X Enterprise v4.2.2 版本规则引擎可以选择同步/异步方式存储数据,部分资源提供批处理启用开关,用户可根据需要选择不同的数据处理模式,平衡数据处理性能与数据时序问题。

同时,该版本提高了 LwM2M 协议易用性,可以通过 Dashboard 可视化界面与 REST API 单独管理 LwM2M 连接,包括通过 LwM2M 协议接入 EMQ X 的客户端列表以及对应的 Object 和 Resource。

详细更新日志:https://www.emqx.io/cn/changelogs/enterprise/v4.2.2


         功能         

   规则引擎

EMQ X 规则引擎(https://docs.emqx.cn/cn/broker/latest/rule/rule-engine.html) 用于配置消息流与设备事件的处理、转发规则, 支持将数据转发到包括 Apache Kafka、Clickhouse 在内的多种数据库、流处理与数据分析系统中,快速构建一站式物联网数据集成,清洗,存储,分析,可视化平台。

传统的沙漏计时器,以及依靠太阳位置来测定时间的日晷,都是古老的计时装置。图/Wiki commons

原子时,精确而刻板的时标

科学家发现,原子内部的某些运动是非常稳定的,而且不受外界条件的影响,这给时间标准的再现和统一提供了方便。20世纪60年代,国际计量大会决定用“原子秒”取代原来的“天文秒”。

一般情况下,制订历法时先根据自然周期确定回归年、朔望月、太阳日等计时单位的长度,然后再划分秒长。比如,先测定1日的长度,再规定1日的86400分之1为1秒。但原子时与宏观自然周期没有本质的对应关系,它们的设置带有随意性和人为性。在制订时是先定秒长,再按照“60秒1分钟,60分钟……”的原则推得年月日的长度。

如何确定“原子秒”的长度呢?大自然中的固有周期当然是最重要的参照。比如,在较长一段时间内,利用原子时所得到的1天要尽量接近用太阳时得到的1天。否则就会给生活带来很多不便。

考虑到这一点,在1967年召开的第13届国际度量大会上,人们确定了原子秒的长度:以铯-133原子基态的两个超精细能级之间跃迁所对应辐射的9192631770个周期的持续时间为1秒。这个时间单位已经成为国际单位制中的基本单位之一。

既然秒长确定下来了,1天的时间也就确定了。无论地球自转如何变化,每天都是86400秒。在这个意义上我们可以认为,原子时是以秒长为出发点的。

作为 EMQ X 重磅功能,规则引擎基于 SQL 提供了清晰、灵活的 "配置式" 的业务集成方案,简化了业务开发流程,提升用户易用性并降低业务系统与 EMQ X 的耦合度。

但无论如何,原子时已经失去了时间的原始意义,尽管它可以调整到比天文时更接近日月运行的真实周期,但这其实只是外在形式上的接近而已。不过,还是有很多人认为,虽然原子时不是原始意义上的时间,但既然它异常精确,在日常生活中使用又何妨呢?

4.2.2 版本中规则引擎新增以下功能:

新增支持 Oracle、MS SQL Server、DolphinDB 数据库

Oracle、MS SQL Server 均是商业关系型数据库阵营中的杰出代表,拥有较高的市场占有率,此次更新填补了技术栈完整性的不足,覆盖了更多的客户群体。

“子夜太阳”奇观?

主张在生活中使用原子时的人忽略了一个重要的事实,那就是,地球的自转速度并不均匀,从长远来看,这种不均匀并非时快时慢,而是越来越慢,所以误差只会逐渐积累。

DolphinDB(https://www.dolphindb.cn/)  是由浙江智臾科技有限公司研发的一款高性能分布式时序数据库,集成了功能强大的编程语言和高容量高速度的流数据分析系统,为海量结构化数据的快速存储、检索、分析及计算提供一站式解决方案,适用于量化金融及工业物联网等领域。EMQ X 结合 DolphinDB 为金融、工业网物联网提供更多的数据处理选择。

而原子时丝毫不顾及天地得变化,它精确而刻板,按照自己的固有速度一往无前。如果简单地采用原子时,就会出现这样的情况:太阳升到了上中天,时钟却敲响了子夜12点。当然,这需要很长时间的积累。科学家估计,要经过数千年,两者相差才能达到12小时,才会出现“子夜太阳”的奇观。这看起来似乎微不足道,但它对于现代社会来说,是一个无法忽略的误差。

可为动作配置同步/异步两种数据处理方式

此前出于时序考虑,规则引擎仅支持使用同步模式处理设备数据,以 Publish 为例,规则引擎数据入库时会阻塞 Publish 流程,等待入库之后才将消息发布到指定主题。

消息量较大的情况下,如果用户不希望阻塞正常的 Pub/Sub 及其他流程,可以在创建规则引擎的时候选择异步模式,异步模式可以将设备消息通信与数据处理分离,避免规则引擎阻塞客户端正常行为。

因此,天文时形象,原子时精确;天文时分日为秒,原子时积秒成日;天文时是诗人笔下的春云秋月、北雁南飞,而原子时则是加速器中转瞬即逝的幽灵;天文时宏大,以日月为载体,统摄世间万物;原子时精深,隐身于玄奥幽邃的原子之中,使万物谐调一致;柏拉图会对天文时的误差疑惑不解,柏格森则慨叹,原子时使人类离真实的时间又远了一步!

规则引擎与 LwM2M 重大改进!EMQ X 企业版 4.2.2 正式发布就在三天后!全球多一秒钟,你想和谁一起过?(图4)

要现在人们使用的计时系统,其实就是天文时和原子时相调和的产物。图/deviantart.com

实际使用中两者的时序差别基本不会影响到业务,规则引擎动作优先推荐使用异步模式。


闰秒,协调世界!

天文时和原子时各有特色,却又都难以单独承担起为现代社会计时的重任。也许把两者的优点结合起来,会有一种更好的计时方式。我们现在采用的,正是这样一种计时系统——“协调世界时”。严格来讲,协调世界时不是一种单独的时标,而是原子时和天文时(世界时)相调和的产物。这个充当中介的“调解人”就是闰秒。

更多动作支持批处理并提供启用配置

此前规则引擎只有少数动作如 保存数据到 MySQL 支持批处理,并且默认启用了批处理功能无法关闭。

1972年,国际计量大会对世界时做了调整,方法是:当世界时与原子时之差将要超过0.9秒时,就在世界时的时序上加上1秒,这1秒称为“(正)闰秒”。因此,闰秒就是让原子停下脚步,等候太阳1秒钟。也可以说是原子向太阳“看齐”——精确的时间向不精确的时间“看齐”!

具体什么时候出现闰秒,由国际地球自转和参考座标系统决定。一般规则是,如果本年度有闰秒出现,那么它会出现于6月或12月最后一天的最后一分钟(这里说的是中时区的时刻)。正常的时序是“……23:59:59,00:00:00……”,有正闰秒时,要在两者之间加一个“23:59:60”,而有负闰秒时,只需在正常时序中去掉23:59:59即可。

协调世界时,在宏观上是天文时,在微观上是原子时。我们钟表里的秒针以原子时的频率跳动,却必须时刻不离天文时左右。这样协调的意义在于,两种时标的差距始终不会超过1秒,避免了时刻与自然节律的明显不一致。

目前支持批处理的资源:MySQL、PostgreSQL、ClickHouse、TDengine、Cassandra、SQL Server、Oracle、DolphinDB。

历法改进,闰秒存废?

虽然闰秒有十分重要的意义,但并非所有人都支持它的存在。

启用批处理能够带来数倍的性能提升,但是也存在相应的问题。以 MySQL 为例,规则引擎执行动作时不会立即写入数据库,而是会等待进行批处理:

地球自转越来越慢,所以闰秒的出现越来越频繁。自1972年以来,已经出现过24个闰秒,而且都是正闰秒。也就是说,在40年的时间里,原子时比世界时快了24秒。闰秒的出现频率显然太高。

原理:将一定条数或一段时间内的多个 INSERT 操作将合并为一个,以便提高插入效率

更为棘手的因素是地球自转速度的不可预测性。假如地球自转均匀变慢,那么我们就可以像公历的闰年那样解决闰秒问题。但地球自转速度的不均匀,使得闰秒的出现没有规律。

对于普通人来说,闰秒无足轻重。但对于某些对时间要求较高的系统,如全球定位系统、金融交易系统和空中交通管制系统等来说,这1秒可能意味着误差、损失甚至灾难,成为新时代的“千年虫”。

为了应对这种现象,除了提高系统的智能程度,科学家还提出一些针对时标的建议。比如不用闰秒而采“闰时”,这样就能大大减小调整的频率,只需几百年或上千年调整一次。

但也有人坚持走精确路线,主张取消闰秒,同时连天文时也取消,而单纯用原子时计时。目前国际上这种呼声最高,包括计量、电信、无线电方面的国际组织,均支持这种做法。可以想象,几年之后,辉煌过近半个世纪的闰秒可能会退出历史的舞台。和它一起离开的,则是承载着人类童年之梦的天文时标。

满条数执行(批量数):待执行的 INSERT 操作满 100 条,合并为一条插入,重置计时器

到时间执行(批量间隔):如果等待 10ms 还未满 100 条,合并为一条插入,重置计时器

批量数与批量间隔可在创建动作时自行设置。

这个过程中存在的问题是:

本文来自果壳网,谢绝转载。如有需要请联系media@guokr.com

落库有延迟:受批量间隔与批量数影响,数据不是实时入库的

批量插入部分失败:部分数据错误可能导致整批数据丢失,如约束错误、类型错误,MySQL 中有对应的处理方式但是容易被用户忽略

P.S. 今年全球多一秒,然而看这篇文章用掉了你好几分钟。

操作审计问题:批量插入可能使数据库 SQL 审计变得复杂

不如,点个赞再走?

此次更新后,用户可以决定是否在动作上启用批处理功能来规避以上问题。

规则引擎与 LwM2M 重大改进!EMQ X 企业版 4.2.2 正式发布就在三天后!全球多一秒钟,你想和谁一起过?(图5)

   支持 LwM2M 可视化与 REST API 管理

LwM2M 是由 Open Mobile Alliance(OMA) 定义的一套适用于物联网的轻量级协议,它提供了设备管理和通讯的功能,尤其适用于资源有限的终端设备。

EMQ X-LwM2M 实现了 LwM2M 的大部分功能,应用程序和 MQTT 客户端可以通过 EMQ X-LwM2M 访问支持 LwM2M 的设备,设备也可以往 EMQ X-LwM2M 上报 notification,实现数据双向通信。

规则引擎与 LwM2M 重大改进!EMQ X 企业版 4.2.2 正式发布就在三天后!全球多一秒钟,你想和谁一起过?(图6)

EMQ X v4.2.2 中,用户可以通过 Dashboard 可视化界面与 REST API 单独管理 LwM2M 连接,获取 Lw 连接的 IMEI、LifeTime、objectList 等信息,帮助企业快速实现安全可靠的设备互联、IoT 平台及垂直行业应用开发。

规则引擎与 LwM2M 重大改进!EMQ X 企业版 4.2.2 正式发布就在三天后!全球多一秒钟,你想和谁一起过?(图7)

早在 2017 年 EMQ X 就提供了对 CoAP 和 LwM2M 协议的支持,并成功应用在商业项目上(参见 NB-IoT 爆发期,EMQ 助力企业开启亿级物联网连接时代(https://www.emqx.io/cn/blog/emqx-nb-iot-access-solution) )。此次更新后相关功能易用性迈上了一个台阶,EMQ X 已跻身全球范围内少数可商用且功能完备的 LwM2M Server 行列。

   优化 Auth HTTP 性能

EMQ X 可以向用户自定义的认证 HTTP 服务发起请求,查询认证与 ACL 权限,认证服务通过返回的 HTTP 响应状态码 (HTTP statusCode) 来控制认证结果。

相比于数据库认证、JWT 等认证方式,HTTP 认证能够实现更为复杂的认证鉴权逻辑,本次更新优化了 EMQ X 认证请求 HTTP 性能,能够承载更高的连接、发布/订阅速率。

   功能调整

新增 SSL 支持配置CA证书的 depth

   问题修复

修复 规则引擎 动作异步模式计数不准的问题

修复 在热升级中的异常问题

   联系

如果对 EMQ X 企业版有任何问题,请随时通过 contact@emqx.io 与我们联系。

规则引擎与 LwM2M 重大改进!EMQ X 企业版 4.2.2 正式发布就在三天后!全球多一秒钟,你想和谁一起过?(图8)

点击"阅读原文" ,了解更多。

↓↓↓

标签: 时序计时器

随便看看