「物联网架构」Apache-Kafka:物联网数据平台的基石

简介: 「物联网架构」Apache-Kafka:物联网数据平台的基石


当谈到物联网(IoT),许多开发者从微控制器、片上系统板、单板计算机、传感器和各种其他电子元件来思考。而设备无疑是物联网的基础,连接的解决方案的核心价值在于这些设备产生的数据。

设备层仅仅是底层数据平台的冰山一角,而底层数据平台则是水面下的重担。强大的物联网数据平台的关键支柱之一是Apache Kafka,它是一种开源软件,旨在处理大量的数据摄取。它充当数据中心中由Apache storm、Apache spark和Apache hadoop集群提供支持的数据处理管道的网关。

如果你是一个将物联网作为职业选择的开发者,那么现在是你开始投资Apache kafka的时候了。本文探讨了Apache kafka在部署可伸缩物联网解决方案中所扮演的角色。

Kafka:传感器数据的高性能摄取层

物联网设备包括能够生成多个数据点的各种传感器,这些数据点以高频率采集。一个简单的恒温器每分钟可以产生几字节的数据,而一辆连接的汽车或风力涡轮机在几秒钟内就可以产生千兆字节的数据。这些海量数据集被摄取到数据处理管道中,用于存储、转换、处理、查询和分析。

每个数据集由多个表示特定度量的数据点组成。例如,连接的暖风、通风和空调(HVAC)系统将报告环境温度、所需温度、湿度、空气质量、鼓风机转速、负荷和能耗指标。

在一个大型购物中心,这些数据点经常从数百个hvac收集。由于这些设备的功能可能不够强大,无法运行完整的TCP网络堆栈,因此它们使用诸如Z-Wave和ZigBee之类的协议将数据发送到能够聚合数据点并将其摄取到系统中的中央网关。


网关将数据集推送到Apache-Kafka集群,其中的数据采用多条路径。需要实时监控的数据点经过热路径。在我们的HVAC场景中,实时跟踪温度、湿度和空气质量等指标以采取纠正措施非常重要。这些数据点可以通过Apache storm和Apache spark集群进行近实时处理。

负载和功耗等指标在一段时间内收集后进行分析。通过批处理过程收集和分析的这些数据点通常采用数据处理管道的冷通道。MapReduce作业可以在Hadoop集群中运行,用于分析hvac的能效。

不管数据点采用什么路径,它们都需要被摄取到系统中。apachekafka充当处理大量数据集的高性能数据摄取层。负责热路径和冷路径分析的数据处理管道组件成为apachekafka的订户。

Kafka vs.MQTT

apachekafka不是MQTT的替代品,MQTT是一种通常用于机器到机器(M2M)通信的消息代理。卡夫卡的设计目标与MQTT有很大不同。

在物联网解决方案中,设备可分为传感器和执行器。传感器生成数据点,而执行器是可以通过命令控制的机械部件。例如,房间中的环境照明可用于调整LED灯泡的亮度。在这种情况下,光传感器需要与LED通信,这是M2M通信的一个例子。MQTT是为传感器网络和M2M优化的协议。

由于Kafka不使用HTTP进行接收,所以它提供了更好的性能和规模。

由于MQTT是为低功耗设备设计的,它无法处理海量数据集的摄取。另一方面,Apache kafka可以处理高速数据摄取,但不能处理M2M。

可扩展的物联网解决方案使用MQTT作为显式设备通信,同时依赖Apache Kafka来接收传感器数据。也可以将Kafka和MQTT桥接起来,以便摄取和M2M。但是建议将设备或网关配置为Kafka生产者,同时仍然参与由MQTT代理管理的M2M网络,从而使它们保持分离。

Kafka与HTTP/REST

apachekafka公开了一个基于二进制协议的TCP端口。推送数据的客户机启动套接字连接,然后写入一系列请求消息并读回相应的响应消息。此协议不需要为每个连接或断开连接进行握手。

由于Kafka不使用HTTP进行接收,所以它提供了更好的性能和规模。客户机可以连接到集群的一个实例来接收数据。这种体系结构与原始TCP套接字相结合提供了最大的可伸缩性和吞吐量。

虽然使用HTTP代理与Kafka集群通信可能很诱人,但建议解决方案使用本机客户机。由于Kafka是用Java编写的,所以本机Java客户机库提供了最好的性能。社区已经为Go、Python甚至甚至构建了优化的客户端库节点.js. Shopify还为Kafka开发了一个名为Sarama的开源Go库。Rackspace的Mailgun团队已经构建了Kafka Pixy,一个Kafka的开源HTTP代理。Python、C#、Ruby和其他语言有多个库。

大多数物联网网关功能强大,足以运行Java、Go或Python。为了获得最佳性能和吞吐量,建议使用本机为Kafka设计的客户端库。

Kafka入门

apache kafka是用Java开发的,它的部署由apache zookeeper管理。任何能够运行JVM的操作系统都可以用来部署Kafka集群。为了测试水,你可以在Docker运行卡夫卡。

如果您不想处理基础设施,可以从云中的托管Kafka服务开始。IBM Bluemix有一个基于Kafka的完全管理的基于云的消息服务MessageHub。Cloud Karafka是公共云中的另一个流式平台,专为Apache Kafka工作负载而设计。Aiven.io提供hosted Kafka以及InfloxDB、Grafana和Elasticsearch。如果你是一个Salesforce.com网站或者Heroku开发者,你可以在Heroku上利用Kafka。

Apache卡夫卡是许多大数据部署的基础。在本系列的后续文章中,我将介绍Kafka的关键概念、体系结构和术语

相关文章
|
3月前
|
大数据
【赵渝强老师】大数据主从架构的单点故障
大数据体系架构中,核心组件采用主从架构,存在单点故障问题。为提高系统可用性,需实现高可用(HA)架构,通常借助ZooKeeper来实现。ZooKeeper提供配置维护、分布式同步等功能,确保集群稳定运行。下图展示了基于ZooKeeper的HDFS HA架构。
|
4月前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
281 1
|
4月前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
88 3
|
4月前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
169 0
|
3月前
|
存储 消息中间件 分布式计算
Cisco WebEx 数据平台:统一 Trino、Pinot、Iceberg 及 Kyuubi,探索 Apache Doris 在 Cisco 的改造实践
Cisco WebEx 早期数据平台采用了多系统架构(包括 Trino、Pinot、Iceberg 、 Kyuubi 等),面临架构复杂、数据冗余存储、运维困难、资源利用率低、数据时效性差等问题。因此,引入 Apache Doris 替换了 Trino、Pinot 、 Iceberg 及 Kyuubi 技术栈,依赖于 Doris 的实时数据湖能力及高性能 OLAP 分析能力,统一数据湖仓及查询分析引擎,显著提升了查询性能及系统稳定性,同时实现资源成本降低 30%。
Cisco WebEx 数据平台:统一 Trino、Pinot、Iceberg 及 Kyuubi,探索 Apache Doris 在 Cisco 的改造实践
|
2月前
|
存储 SQL 分布式计算
大数据时代的引擎:大数据架构随记
大数据架构通常分为四层:数据采集层、数据存储层、数据计算层和数据应用层。数据采集层负责从各种源采集、清洗和转换数据,常用技术包括Flume、Sqoop和Logstash+Filebeat。数据存储层管理数据的持久性和组织,常用技术有Hadoop HDFS、HBase和Elasticsearch。数据计算层处理大规模数据集,支持离线和在线计算,如Spark SQL、Flink等。数据应用层将结果可视化或提供给第三方应用,常用工具为Tableau、Zeppelin和Superset。
531 8
|
3月前
|
消息中间件 缓存 架构师
关于 Kafka 高性能架构,这篇说得最全面,建议收藏!
Kafka 是一个高吞吐量、高性能的消息中间件,关于 Kafka 高性能背后的实现,是大厂面试高频问题。本篇全面详解 Kafka 高性能背后的实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
关于 Kafka 高性能架构,这篇说得最全面,建议收藏!
|
3月前
|
SQL 数据采集 分布式计算
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
360 3
【赵渝强老师】基于大数据组件的平台架构
|
2月前
|
存储 负载均衡 监控
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
65 0
|
4月前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
65 9

相关产品

  • 物联网平台
  • 推荐镜像

    更多