如何在物联网的系统性计算中采用Kafka
陈峻编译   51CTO   2020-01-15

【51CTO.com快译】在创造性技术领域,该署从事农业、电气化行业、飞行、物流、以及零售等行业应用的支出人员经常会考虑之一个问题是:到底应该在创造性处,还是应当在“实在”的数据中心、或是在集体云基础架构中安排Apache Kafka?

在本文中,咱们将向综合性计算领域的开发者介绍Kafka在物联网(IoT)竞争性处的不同用例和架构用法。文末,咱们还会讨论Kafka表现事件流平台,是如何在创造性处对其它IoT框架及制品进行补充,进而实现大规模的暂时数据集成与语言性处理。

常态化的多个Kafka队集

现行,Apache Kafka的多集群和跨数据中心的调度方式,已变成了业界的那种规范。虽然“竞争性处Kafka(Kafka at the edge)”可以把布置为一个独立的品种;但是在大部分情况下,他处于整个Kafka架构中的一部分。诸多企业会根据如下原因,来创造多个Kafka集群:

  • 独立的品种需求。
  • 分立式的三合一方法。
  • 竞争性计算。
  • 组件聚合。
  • 平台移植。
  • 不幸恢复。
  • 区域或洲际通信所需的天下架构。
  • 跨企业之间的关联。
  • 什么是“竞争性”或“竞争性计算”?

    在考虑部署边缘处Kafka先前,让咱先来了解一下与“竞争性技术”相关的概念。维基全面上说:“竞争性计算是一种分布式的算计范式。他通过让计算本身和数量存储更加贴近所需的岗位,故而缩短了响应的年华并节省了带宽”。同时,他的任何优势还包括:降低成本,增长系统之灵活性,以及分离关注点。

    竞争性的Apache Kafka

    脚下,侨界对如何将Kafka应用于边缘计算有着不同之视角,其中包括:

  • 仅在创造性客户端:Kafka客户端运行在创造性处;而Kafka集群则把布置在数据中心或集体云的气氛中。
  • 任何都在创造性:名将Kafka集群和Kafka客户端都部署在创造性处(例如工厂里之各族玉器上)。
  • 竞争性与远端:Kafka集群被布置在创造性;而Kafka客户端(例如该地段的本能手机)则运行在邻近边缘处。
  • 可见,竞争性处Kafka具有比较灵活且广泛的采取范围,其中包括:

  • 烟草业物联网(Industrial Internet of Things,IIoT)车间边缘处的Kafka客户端可以由C语言来编写,并部署到铁器的微控制器中。该系传感器通常只有几千个字节的内存,而且可以“入伍”永恒的时限。
  • 在体育用品业业务中创造性处,完全的分布式Kafka集群,可以运行在StarlingX上(https://www.starlingx.io/)。StarlingX是一番基于Kubernetes的正本求源私有云架构栈,可把用于IIoT、工商、视频交付、以及其他具有超低延迟等苛刻要求的使用边缘环境中。
  • 穿过部署,联网传统银行或保险公司的骨干硬件与语言性硬件。
  • 可见,在大部分情况下,竞争性处Kafka就是指:布局在系统边缘处的Kafka集群。而对应的Kafka客户端程序既可以在地方运行,也得以在邻近运行。当然在少数情况下,“附近”可能在指几英尺开外。

    竞争性处Kafka的用例

    下,咱们来讨论一下边缘处Kafka在诸多不同企业中的运行用例。

  • 烟草业物联网:实时边缘集成与处理,是近代物联网架构成功之严重性。在农业4.0官方,该系用例比比皆是,包括:展望性维护、质量保证、流程优化、以及网络安全等方面。其中使用Kafka来构建数字孪生(Digital Twin,翻译注:在虚拟空间中仿真、照耀并反馈对应的实体设备的总体生命周期过程)就是最广泛的面貌之一。
  • 零售:不论沃尔玛这样的代理商,还是星巴克之类的咖啡店,抑或亚马逊Go的流的潮店,产业化转型都会带来很多地方的更新。其中包括:我家的360度体验,合作社与顾客之间的交叉销售,以及与任何合作供应商的搭档等方面。
  • 物流:科普的暂时数据关联,是改变任何物流场景的严重性因素。其中包括:头到头的包装跟踪和交给,直升机(或自动驾驶)与地面自助服务站的通信,物流中心的加快处理,共享汽车的和谐和准备,以及智慧城市中的交通信号灯管理等方面。
  • 不论上述哪种用例,竞争性处Kafka的合同架构都会如下图所示:

    竞争性计算的挑战

    在集团准备将各种创新之暂时应用引入工厂、零售店、咖啡店等景象,并将数据分发到边缘站点时,往往会遇到如下的挑战:

  • 出于不良的网络状态和广大其他地方的限制,竞争性处的各族硬件、机械、以及设备难以顺畅实现集成。
  • 诸多用例都要求开展普遍的、且实时的拍卖。而那些处理都不能不在场地边缘处实施,而不是在远端的数据中心、或几百英尺开外的云端进行。
  • 各族艺术和协商都不能不在创造性处集成。而且各种传统或专有的商谈,必须越过隧道,与另一面的大数量工具进行通信。
  • 些微的软件资源与人口。由于成本的设想,IT家无法到达每一个边缘站点,拓展硬件的运维。
  • 各族数据必须大规模地在地方进行实时存储和处理。同时,该署数据需要把复制到数据中心或云端,以便进一步汇总、拍卖与分析。此外,为了贯彻由单纯节点以发送命令或事件的措施控制各个边缘站点,各族通信最好是走向的。
  • 用于边缘计算的Kafka架构

    在初始讨论有哪些边缘处Kafka的调度方案之前,咱们需要事先搞清楚的一个问题是:到底是否需要高可用性的系统性架构。

    其实,竞争性计算并不一定需要具有高可用性。如果您的确需要的话,就请部署传统的Kafka集群;而如果不需要的话,则只需在创造性处设置一个简单、且低成本的Kafka Broker即可。而且如果需要在上百个站点进行布局之话,这就是说现成的软件设备会更加容易实现。

    下图展示了三个根本性站点。每个站点上都部署了一番Kafka集群,而每个集群里都包括有不同之Kafka组件。

    穿过三个以上的Kafka Broker在创造性实现弹性部署

    Kafka及其生态体系旨在确保即使某一单个节点发生故障,也能实现系统之高可用性和零停机时间。如下图所示,为了安排一套分布式的体系,您至少需要三个Kafka重点和三个Zookeeper重点。而其余组件则要求至少两个重点,才能确保操作的可靠性和数量的拱坝丢失。

    您可以参考《Apache Kafka与Confluent平台参考架构》一文,以了解部署之超级实践。当然,出于存量负载和总量通常在创造性处都比较低,故此如果SLA兴许的话,较少的内存与磁盘空间也就足够了。

    穿过一个Kafka Broker在创造性实现非赢利性部署

    现行,在创造性处部署“轻量级的Kafka队集”,下一场与更大的地方Kafka队集同步或监制数据的急需已日益增加。不过,出于硬件本身的限制、以及SLA对于高可用性的要求并不高,故此在创造性处仅部署一个Kafka Broker增长一个Zookeeper即可。如下图所示,您甚至可以将全部Kafka的气氛只部署在一台服务器上。

    不过,该部署方案存在着一个明显的缺点:出于没有多少之间的摄制,顶该节点或网络出现故障而造成停产时,您的多寡就有丢失的风险。当然,该系单节点式的Kafka布局方案仍具有如下方面的劣势:

  • 贯彻了producers与consumers之间的解耦。
  • 能够有效地处理背压(back-pressure)。
  • 即使只有一度Broker,也能实现实时地处理大用户量数据。
  • 在光盘上开展存储。
  • 能够重新处理数据。
  • Kafka Connect可用于集成,Kafka Streams或ksqlDB可用于流处理,Schema Registry可用于管理,真可谓Kafka地方组件的“全家桶”。
  • 移除ZooKeeper名将有助于边缘处Kafka

    和诸如Hadoop、Spark等其它分布式系统类似,出于过分依赖于ZooKeeper,故此Kafka不但在操作上有稳定的强度,而且扩展性也比较差。这就是说对于绝大多数物联网项目而言,出于整体布局之耗时较长,咱们建议您通过移除ZooKeeper,而有效Kafka更轻量级,更容易操作。

    名将Kafka表现边缘设备和云服务之间的网关

    在少数配置中,您可能希望边缘设备与地面的网关进行通信。此刻,您就足以运用网关式的Kafka架构方案。例如,在工厂中,多台机械或生产线被视为边缘设备。它们需要与各自的Kafka队集相集成,贯彻将数据发送给作为网关的Kafka队集。故而,在Kafka集群网关上,您可以直接在地方进行分析,穿过过滤或转换数据,末了发送并聚合到远程大型的Kafka集群中。

    如上图所示:第一,两个挺立的厂子分别在各地部署了非赢利性的纯粹Kafka Broker,以促成数据的当地处理。下一场,由一度爆炸性Kafka队集网关聚合三个Kafka Broker,并在工厂的当地处理各类数据。接着,只有那些重要、且经过预处理的多寡才会把转发到远程的Kafka队集中(在图中体现为Confluent Cloud)。末了,该云中的Kafka集群聚集了来自不同工厂的多寡,以便与其他工作应用或分析工具相集成。

    竞争性处Kafka表现OEM或硬件组件

    集团在创造性处安装硬件,会比在地方数据中心、或集体云端要复杂且麻烦得多。如果我们在创造性处采用标准化的Kafka组件安装方法,则会大幅削减工作量与隐秘的风险。

    脚下,已有数十家硬件供应商可以扶持您构建OEM的软件设备。当然,您也得以通过远程管理并利用一些DevOps工具,来安装所有必需的硬件组件。

    为了优化安装和借鉴边缘处Kafka集群,以Hivecell(https://hivecell.io/)为代表,商店生产了武装有Kubernetes、Kafka生态体系、Confluent Operator(https://www.confluent.io/confluent-operator/)工具、以及其他工作应用的产品盒子。他亦可简化并无边缘处Kafka空气中的各项操作。他家只需将一个或多个产品盒子运到边缘站点。在将他连接到地方WiFi后,其它一切的借鉴都得以在远程进行实现。该企业甚至号称:能够让用户不再需要技术人员,即可在创造性部署和保护软件。

    打电话、联网、合并、数据处理

    正如上述各图所展示的那样,Kafka的气氛中并不仅仅包括了Kafka Broker与Zookeeper。不论在云头、地方、还是在创造性处,打电话、联网、合并、以及数据处理都是Kafka基础架构中的重要组件。

    现实而言,在Kafka Broker与Kafka客户端之间,副边缘处到远程的通信流程为:装备->竞争性处Kafka->研制->数据中心与云端的Kafka队集->数据分析与实时处理。普通,该系通信是走向的。这就是说对于Kafka原生的各国组件而言,您只要求管理一个Kafak的跳台,即可进行普遍的暂时通信、合并和数据处理。其中涉及如下方面:

  • Kafka Connect:包括MQTT(信息队列遥测传输)、OPC-UA、FTP、CSV、PLC4X(一组传统与专有IIoT协和,例如Modbus、Siemens S7、Beckhoff、Allen Bradley四种可编程序控制器,即PLC)。
  • Mirror maker与Confluent Replicator:贯彻两个Kafka队集之间的另一方面或双向复制。
  • Kafka客户端(Producers/Consumers):支持Java、Python、C++、C、Go、Javascript等语言。
  • 数据处理:采用Kafka Streams或ksqlDB拓展流处理(包括无状态流的ETL和任何有状态的使用)。
  • 办理:采用REST proxy拓展HTTP(S)打电话,采用MQTT proxy拓展MQTT合并。
  • 架构注册表:承担治理与花园式的实行。
  • 可见,出于边缘处硬件资源之受限,咱们应有在初始时就设计好整体架构和数据通信,让Kafka全栈能够真正满足边缘的急需。

    混合架构

    物联网的现实性需要往往是丑态百出的。面对24小时/7远处的暂时部署,零数据量的少,以及无延迟的暂时处理,咱们光靠Kafka架构有时会力不从心。此刻,咱们就要求结合使用其他的IoT框架或方案,来促成与Kafka的嘴到头集成。

    如上图所示,咱们可以在工厂车间里采取西门子的MindSphere(这是一种意义强大,租用范围广泛,但也复杂且昂贵的物联网解决方案),来作为网关或代理。当然,咱们可以将HiveMQ(翻译注:一种企业级的MQTT Broker)布局为可扩展的MQTT集群,以连接到机器和装置。

    在少数情况下,Kafka也得以把直接用作IoT的网关或代理,以连接PLC或分布式控制系统(Distributed Control System,DCS)。同时,Kafka也可连接诸如AWS IoT或谷歌云的MQTT Bridge等IoT解决方案,贯彻进一步的拍卖和分析。

    出于数据通信往往是走向的,故此无论您选择哪一种架构,都不能不能够从车间或其它IoT装备中索取数据,穿过实时的拍卖与沟通,说到底将控制类事件发回给机器。例如:在展望分析中,您首先需要采取TensorFlow等等的云端工具训练分析模型,下一场才能在创造性处部署分析模型,以拓展实时预测。

    可见,穿过与任何物联网框架或解决方案的三结合,Kafka生态体系不但得到了卓有成效的补足,而且各自都能够专注于不同之效应用例之中。例如:Kafka可专注于设备管理,模型训练。主流的云提供商能够为设备管理提供IoT劳务、云端代理、以及分析工具。而开源的框架Eclipse则可以用于构建数字孪生。

    慎用过多之分布式系统结合

    当然,如果您想为经常性计算和混合架构构建可扩展的、保险的流式结构,并且达到不会造成任何宕机或数据丢失的功力,这实际上很难在集成了多种中间件工具的气氛中贯彻。具体地说:参与组合的工具越多,劳务中断或数据丢失的风险也就越高。例如:NiFi(翻译注:Apache的NiFi品种是一种实时数据流处理系统)有着友好之分布式基础架构,这就是说您必须保证从producer穿过NiFi和Kafka能够最终达到consumer,这一切过程都具有24小时/7远处的嘴到头正常运行时间。同理,诸如Kafka Connect和Kafka Streams等等的原生工具,采用Kafka Topic在船台提供高可用性时,您也要求保障此类24小时/7远处的智能化宕机或数据丢失。故此,请慎用“探测器ABC -> NiFi(破获) -> Kafka Topic A -> NiFi(转移) -> Kafka Topic B -> NiFi(加载) -> 使用程序XYZ”等等的管道架构,来开展无数据丢失的广大实时处理。

    总结

    竞争性计算往往只是全体体系结构的组成部分,但是作为该领域的“斑马”,竞争性处Kafka可以通过混合架构的调度方式,增长数据的拍卖速度,降低网络的传导成本,并且能送任何系统带来更好可扩展性、可靠性和健全性。

    原文标题:Apache Kafka Is the New Black at the Edge in IoT Projects,笔者:Kai Wähner

    【51CTO来稿,合作站点转载请注明原文译者和出处为51CTO.com】

    【编纂推荐】

    1. 2020年八个以数据为导向的物联网方向
    2. 预见2020:物联网新“布局”,十大趋势预测分析
    3. 2020年5大物联网挑战和机会
    4. 副通信到控制:维护物联网设备的十大政策
    5. 物联网改善动物生活之6种方法
    【义务编辑: 赵宁宁 TEL:(010)68476606】

     

    分享到朋友圈 分享到微博
  • 物联网
  • 竞争性计算
  • Kafka
  • 相关推荐

    必发娱乐手机版和物联网改变汽油零售行业

    2020-01-16 16:14:41

    2020年网络安全趋势如何,派拓网络专家这样说

    2020-01-15 15:45:23

    物联网安全为什么是集团较大的噩梦

    2020-01-15 12:05:49

    Copyright © 2005-2020 51CTO.COM 必发娱乐登入
    情节话题
    必发娱乐登入 移步 传感器 系统 安全 网络 必发娱乐登录 虚拟化 付出
    热门产品
    51CTO必发娱乐登录 51CTO高招 移步开发者服务联盟网+ 51CTO博客 WOT碰头会
        <optgroup id="faf499eb"></optgroup>

          1. <input id="73350f86"></input>