共计 1906 个字符,预计需要花费 5 分钟才能阅读完成。
在 TDengine 3.0 中,咱们对流式计算、数据订阅性能都进行了再降级,帮忙用户极大简化了数据架构的复杂程度,升高整体运维老本。TDengine 提供的相似音讯队列产品的数据订阅、生产接口,实质上是为了帮忙利用实时获取写入 TDengine 的数据,或者以事件达到程序解决数据,与其余音讯队列相比,它提供了更大的灵活性,同时无效地升高了传输的数据量与利用的复杂度。
在本篇文章中,TDengine 研发人员具体揭秘了 TDengine 数据订阅的流程和具体实现,给到有须要的人参考。此前咱们还在《对于 TDengine 3.0 数据订阅,你须要晓得这些》一文中汇总了局部重要的语法规定,如果你正在钻研 TDengine 数据订阅性能,能够联合来看。
数据订阅的分类
TDengine 反对多种订阅类型,包含子查问后果订阅、超级表订阅以及整个数据库订阅。超级表订阅和库订阅反对参数 with meta,增加此参数后,订阅的后果将蕴含数据的 meta 信息,个别用于数据同步迁徙。具体语法如下:
-
列订阅
CREATE TOPIC topic_name as subquery;
-
库订阅
CREATE TOPIC topic_name as database db_name [with meta];
-
超级表订阅
CREATE TOPIC topic_name as stable stb_name [with meta];
与 Kafka 比照
始终以来,TDengine 做产品的初衷就是简略易用,因而在做数据订阅性能时,API 全副对标的都是 Kafka。如果有人深入研究过 TDengine 的模型,就会发现它的架构模型和 Kafka 的很多设计都是绝对应的,Topic 和 Kafka 类似,Vnode 跟 Kafka 中的 Partition 也很靠近,子表的表名跟 Kafka 中的 Event Key 对应,因而这个架构设计人造地就带有音讯队列的特点,也正是基于此,TDengine 做数据订阅性能能力如此得心应手。
TDengine 的数据订阅性能与 Kafka 相比,基本概念都是统一的,只是具体实现形式可能有所不同,实现门路如下所示:
在时序数据场景下,TDengine 升高了用户对 Kafka 的依赖,其 Vnode 能够容许不同的消费者同时生产数据,用户只须要订阅本人关注的这部分数据,比如说你只想关注电流外面超限的数据,那你应用 TDengine 进行订阅时的数据传输总量是十分小的,但用 Kafka 进行数据订阅时很可能须要从服务器拉取全副的数据,而后还要在客户端中进行数据筛选,这时两者的性能就齐全不在一个量级上了。
TDengine 数据订阅要害参数阐明
生产示例代码
TDengine 数据订阅的流程
Client 端的性能
- 提交 commit
- 获取 endpoint
- 心跳 保活
- 生产数据
client 端在单生产线程里解决逻辑非常简单,无需对资源做并发管制。
Server 端的性能
- 生产调配管制(rebalance)(c1 示意 comsumer ID,g1 示意 group ID)
该性能通过 timer 管制,每 2s 检测一次是否须要 rebalance,rebalance 后,consumer 须要获取到新的 EP,才可失常生产,否则 consumer ID 将呈现不匹配的状况,会重试。
- 生产状态管制
- 生产进度管制
结语
TDengine 的数据订阅、流式计算性能劣势也体现在企业的具体实际上,以西门子的数字化解决方案革新我的项目为例,TDengine 帮忙其 SIMICAS® OEM 2.0 版本移除了 Flink、Kafka 以及 Redis,大大简化了零碎架构,节约了运维老本;在狮桥团体的网货平台与金融 GPS 零碎数据架构革新中,部署了 TDengine 之后,间接下线了一整套的末次地位 Redis 集群、轨迹查问的 Hbase 集群也被个体下掉。如果你也面临着性能和老本难以两全的数据处理难题,亟需降级数据架构,欢送增加 小 T vx:tdengine,和更业余的解决方案架构师点对点沟通。
对于 TDengine
TDengine 外围是一款高性能、集群开源、云原生的时序数据库(Time Series Database,TSDB),专为物联网、工业互联网、电力、IT 运维等场景设计并优化,具备极强的弹性伸缩能力。同时它还带有内建的缓存、流式计算、数据订阅等零碎性能,能大幅缩小零碎设计的复杂度,升高研发和经营老本,是一个高性能、分布式的物联网、工业大数据平台。以后 TDengine 次要提供两大版本,别离是反对私有化部署的 TDengine Enterprise 以及全托管的物联网、工业互联网云服务平台 TDengine Cloud,两者在开源时序数据库 TDengine OSS 的性能根底上有更多增强,用户可依据本身业务体量和需要进行版本抉择。