关于大数据:TDengine-研究与浅析

一. 摘要前言

IT科技的迅猛发展,各种类型的黑科技与利用终端不断涌现,产生各种海量数据,大数据处理平台应运而生,但其宏大体量与简单的架构使开发移植与部署变的越来越艰难。现今各国频繁打贸易战,在多种不确定状况下,基础架构极易被人卡脖子,成为技术倒退的拦路虎,那么TDengine作为近几年新呈现的一款优良开源大数据根底平台,具备性能、可伸缩、高牢靠、零治理诸多特点,且核心技术全副自研,不用放心被外国限度,相比于国外同类产品,齐全开源并具备良好的产品生态社区,可能根本代替国外同类产品,且可能在要害指标达到更优。


二. 技术剖析

1.对于传统数据库SQL语法的兼容性

 Tdengine不仅具备丰盛的利用程序开发接口,反对各种支流语言,能对各种类型的客户端进行开发,过来曾遇到过移植一款开源的Fortran分子动力学应用软件,因开发语言的小众化,无奈找到与之匹配的客户端,只能在认真钻研并梳理分明业务逻辑后,自行开发了一套客户端才保障了整个我的项目需要,两头为保障进度,在参考资料少,Fortran对口开发人员稀缺的状况下,通过加班加点才保障了我的项目没有被延期。

2. 设计技巧

  通过对TDengine设计场景与原理的钻研,再配合原理钻研其代码,因为其代码是C语言,贴近硬件,效率高(效率更高的也只有汇编了)。在古代各种开源框架与低代码背景下,C语言特点就是要常常独自造轮子,对TDengine源码组织构造从简入繁进行探讨钻研。

1).根底数据结构

   近些年,越来越多的高级语言采纳成熟的自研或者第三方SDK,很典型的比方Java与python,很少有从头实现的API接口,就算是难度大的C++,曾经有不少高级新个性与各种STL,Boost类库撑持,而Tdengine中各种malloc/free,内存池机制,一级指针,二级指针,回调钩子函数应用技巧,都显示了开发者扎实的根本功底。C++ Boost库中常见的各种智能指针,能升高因指针使用不当造成的异样解体问题, tmempool实现的内存池,防止了内存碎片与内存回收问题,tlist与tskiplist双向链表实现,tarray数组实现办法均很奇妙,都能够作为拿进去独自封装为API

2). RPC Epoll

  反对分布式集群的重要RPC基于事件模型驱动的网络库,实现其不同节点之间的通信,MQTT类的物联网框架是基于订阅公布的传输模式,RPC采纳C/S架构模式,逻辑清晰明了,Client端发送先发送对应的计算申请给Server端,Server端收到申请先发送应答协定包到Client端,Server端再将计算申请解析后执行并将后果返回Client端。

  从实现逻辑来说TDengine RPC的逻辑性要因为MQTT,更适宜物联网场景,代码可读性更高,远优于其它同类框架。

  RPC数据交互依赖TCP/UDP通信,而TCP/UDP通信的根底在于socket,对于同时存在多个连贯的状况下,应用了效率最高的epoll,工夫复杂度仅为O(1), 这里比拟奇妙的是,因为没有采纳一主/多从的多过程异步事件驱动模型,而是通过创立工作线程来解决音讯,那么就防止了在事件到来时,多个过程被不必要的唤醒,从而引起”惊群”景象,进步了整体数据流的解决效率。

                                                                                                                         作者:superxs

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据