流传递数据的时候中文转码_流数据的理想消息传递功能

流传递数据的时候中文转码

当设计流数据项目的体系结构时,您应该在消息传递系统中寻找什么功能?

为了回答这个问题,让我们从一个假设的IoT数据聚合示例开始,以说明特定的业务目标以及它们对满足这些目标所需的消息传递技术和数据体系结构的要求。 情况是钻探操作有多个位置,每个位置都有许多泵。 每个泵又具有多个传感器,可对各种感兴趣的参数进行测量,例如入口和出口流速,温度,压力,整体振动,电动机的电压和电流等等。 这种情况如图1所示。

流传递数据的时候中文转码_流数据的理想消息传递功能

图1 :使用支持多个生产者和消费者并具有地理分布复制功能的消息传递技术,可以有效地收集,汇总和汇总来自不同钻井位置的泵上多个传感器的IoT数据流,并将其复制到一个或多个中央处理中心。

此钻探示例的业务目标之一是需要监视生产率,最大化生产效率以及最小化由于破坏性设备故障而导致的停机时间和成本。 为此,必须从多个位置汇总数据,并提供给多个消费者。 例如,一个消费者可能是一个分析应用程序,该应用程序更新了实时仪表板,以便实时监控特定位置的泵。 作为预测性维护计划的一部分,其他用户可能正在进行异常检测以发现发生故障之前的讲述模式。 一些消费者可能正在报告所有位置的泵的生产水平。 这些多个使用者需要以不同的方式使用相同的流数据,如图2所示。

流传递数据的时候中文转码_流数据的理想消息传递功能

图2 :一种设计数据流的方法是将所有传感器数据用于与不同参数相关的测量,这些参数从一个泵分配到消息传递系统中的单个主题。 这样,您将拥有多个主题,每个主题都来自一个泵的数据。 此处描述的消息传递系统是MapR流,它具有独特的功能,可以将许多主题收集到称为流的MapR平台对象中,此处显示为处理多个主题的大型圆柱体。 在流级别设置诸如复制,生存时间和访问之类的策略。

在此示例中,可以独立跟踪每个泵的流传感器数据,将其从多个站点传递到中央数据中心,并立即提供给多个用户。 传感器的高数据产生率需要一个即使在非常大的规模下也需要低延迟的高性能的消息传递系统。

这些要求很明确,但是有些要求乍一看可能并不那么明显。 例如:

  • 重要的是,一个以上的消费者必须能够使用数据但要具有选择性:并非所有消费者都需要所有数据,而且他们不必读取所有数据。
  • 业务目标可能要求流技术可以容纳来自不同泵的数据的不同所有者的可能性。 在这种情况下,可能需要有效的访问控制。
  • 为了利用微服务方法提供的灵活性,通常重要的是将数据生产者与数据使用者强烈分离,这是正确的消息传递系统可以做到的。

对于可重复性,流层中的数据要长期保留很重要。 这种持久性使得原始消息可以针对诸如异常检测和预测性维护或审计目的的构建模型之类的应用程序进行重放。 这种持久化消息的方式不同于以前的习惯,即在开发过程中将其持久化到文件,然后在生产中使用流数据进行工作–这种较旧的方法可能会导致意外的意外。

相比之下,现代的消息传递样式使开发过程中甚至可以通过重放日志来使用原始消息,而不必将它们持久保存到文件中。 这种方法使新软件的部署更加可靠和可重复。

MapR首席应用程序架构师Ted Dunning在最近在圣何塞举行的Strata + Hadoop World会议上的演讲中提供了类似的示例。 在主题为“ 实时Hadoop:理想的消息传递系统应带给Hadoop的演讲”的演讲中,Ted探索了具有现代消息传递系统(例如Apache Kafka和MapR Streams)的较旧消息队列技术的特征,这些技术使用Kafka 0.9 API,但集成到MapR数据平台中。 此外,Ted讨论了较旧和较新设计的权衡。

较旧的队列式系统可能包括乱序的确认功能,但通常也不能在不付出巨大性能成本的情况下提供长期持久性。 消息的无序确认允许灵活地处理消息,乍一看似乎很吸引人,但这是旧系统性能限制的核心。

相比之下,现代的Kafka式系统(Apache Kafka和MapR Streams )具有不同的方法,即使在速度和规模上,它们也可以提供持久性和高性能。 这些技术为消息提供了强大的顺序保证,但是消费者无法进行无序确认。

理想的消息传递技术的另一项关键功能是在现代系统中发现的:从多个生产者传递数据,但与多个消费者隔离开。 数据可以立即使用或稍后使用。 使用者甚至不需要在数据交付时就运行。 也可以在以后添加新消费者。 这样,这些具有Kafka风格的技术就不同于某些始终向所有订户广播消息的较旧的排队技术。

地理分布式复制为基于流的体系结构的优点增加了一层。 在图1所示的示例中,包括了将消息从不同位置有效地移动到一个或多个数据处理中心的能力。 MapR Streams特别适合用于将数据从一个位置发送到另一个位置的用例:复制在流级别发生,用于主题的集合。

在他的Strata演示中,Ted还描述了一个物联网用例,其中涉及多个端口之间的集装箱运输。 在这种情况下,可以使用MapR Streams来在当前港口和船舶的下一个停靠港之前更新船上和岸上的群集。 另外,由于MapR的消息传递系统已集成到MapR融合数据平台中 ,因此无需像Kafka那样为数据事件流运行单独的集群。 MapR平台中的这种融合提供了以下优点:统一的数据管理,快照以及文件,表和消息流的镜像,均在同一数据安全系统下。

关键要点:具有现代功能的消息传递系统(例如Apache Kafka或MapR Streams的消息传递系统)更适合数据体系结构和业务结构。

Kafka 0.9示例代码:

MapR Streams示例代码:

翻译自: https://www.javacodegeeks.com/2016/05/ideal-messaging-capabilities-streaming-data.html

流传递数据的时候中文转码