ApacheKafka如何将流数据引入主流ApacheKafka是从大数据趋势中涌现出来的最令人兴奋的开源项目之一。Kafka最初起源于LinkedIn,现在越来越成为更广泛的开源开发社区的主流部分。事实上,Kafka已经到了关键时刻,因为它被用作企业组织中管理流数据的核心平台,包括:IoT操作、金融服务中的欺诈和安全、零售中的商店库存跟踪和其他行业应用场合。Kafka示例展示了LinkedIn是如何护送内部代码进入充满活力的开源社区的一个很好的例子。Confluent的联合创始人兼首席技术官、前LinkedIn数据流基础设施负责人NehaNarkhede最近与TechRepublic坐下来讨论企业采用Kafka的问题。情况和管理流数据的最佳方式。TechRepublic:ApacheKafka是如何进入企业主流的?Nakheed:根据最近的Kafka社区调查,68%的Kafka用户计划在未来6-12个月内集成更多的流处理技术;由于使用Kafka的应用程序越来越多,65%的受访组织计划在未来12个月内雇用具备Kafka技能的员工。在最近的Kafka峰会上,我们听说Uber、Netflix、Dropbox、HomeAway、GoldmanSachs等都在使用Kafka进行实时业务决策。例如,Uber完善了其数据流处理系统以处理UberMarketplace(优步市场)中的许多用例,而Kafka在构建可靠高效的数据管道方面发挥着重要作用。最著名的例子之一是动态定价。想象一下:实时获取所有数据来做定价:从用户需求到道路上的车辆数量,再到决策:每分钟应该定价多少。此示例显示了实时数据管道的运行情况。HomeAway是另一个经典例子。作为度假租赁行业的领导者,它拥有超过100万个房源(并且还在增加)。借助Kafka,HomeAway连接不同的数据源以支持众多用例,包括服务水平协议(SLA)监控、A/B测试、访客细分、欺诈检测、实时ETL等。Confluent是我在离开LinkedIn后与他人共同创立的一家公司,专注于使用Confluent平台扩展ApacheKafka,供需要大规模管理数据并注重速度的企业使用。这包括以下工具:KafkaStreams、KafkaConnect和ControlCenter,为大规模Kafka集群提供新级别的可见性并确保运行健康。TechRepublic:Kafka什么时候绝对是最好用的框架?什么样的用例?Nakheed:Kafka最常见的用例是实时数据传输、集成和实时数据流处理。在数据传输和集成方面,用户使用KafkaConnect将数据连接到应用程序,使所有系统都可以访问唯一的数据。这包括以下数据:日志数据、数据库更改、传感器和设备数据、监控数据流、呼叫中心记录和股票行情数据。至于实时流处理,KafkaStreams是Kafka核心的扩展,它允许应用程序开发人员编写连续查询、转换、事件触发警报和类似功能,而无需专门的流处理框架。这些功能通常用于安全监控、实时操作(例如Uber)和异步应用程序(例如零售商的库存检查)。TechRepublic:在运行这些类型的实时数据管道时,数据局部性有多重要?我通常听说的是,如果在DC/OS上运行,Kafka可以在Kafka和Cassandra之间本地读取数据。鉴于行业正朝着MesosphereDC/OS实施的抽象化方向发展,您如何描述在同一集群上运行互补框架的机会?Narkheed:管理数据中心规模的服务提供了许多优化的机会,如果你有一个这样的机会是极难管理每个服务。虽然能够共同定位相关服务是一个明显的好处,但在某些情况下这是不合理的;相反,您需要的是将专用资源分配给有状态应用程序以进行隔离的能力。后者正是您在部署Kafka和Cassandra等有状态应用程序时所需要的,并且Mesos添加了一些功能来解决管理大型有状态应用程序所需的高级部署类型。我们确保Mesos部署Confluent平台以在需要时维护数据局部性。我们的组件:KafkaRESTProxy和SchemaRegistry实际上是无状态的,可以在这些类型的框架中运行,而像KafkaProxy这样的有状态服务可以以不同的方式进行管理。但是整个Confluent平台需要两种类型的服务。它通过支持完整的平台为客户提供更大的灵活性。TechRepublic:为什么MesosphereDC/OS的两级调度器很重要?为什么它能够吸引合作伙伴/生态系统(例如来自Confluent/DataStax组)的支持?部署有不同的需求。两级调度器可以满足有状态应用程序(如Kafka)的部署需求,需要针对数据局部性进行优化以尽可能节省网络和输入/输出带宽。这在不牺牲Kafka提供的性能的情况下,为客户提供了良好的操作体验。原标题:HowApacheKafkatakesstreamingdatamainstream,作者:MattAsay
