消息传递服务可以帮助解决许多不同的问题。在高水平上,它们解决了两个主要问题:
- 消息处理:通过为组件提供一种可靠和可伸缩的通信方式,支持解耦的应用程序架构。
- 流处理:支持流处理工作流亚搏在线.支持此功能的消息传递服务构建在传统消息传递处理框架之上,增加了对复杂流处理操作的支持和回溯时间的能力。
有许多不同的消息传递代理和协议,但是您如何知道哪个对您的项目是正确的呢?在这篇博客中,我们将专注于Azure云.
主要的消息传递代理和协议。
主要经纪人概述
在我们研究Azure消息传递服务之前,让我们先看看Azure支持的低层代理和协议。Azure在其平台上支持以下消息传递服务:MQTT、Kafka、AMQP 1.0。让我们看一下这些消息代理的主要用例。
MQTT是什么?
MQTT是一个物联网设备的轻量级消息传递协议.它是为具有最小网络带宽的低功率设备设计的。MQTT客户端(如传感器)设备连接到MQTT代理(如物联网应用程序)进行双向通信。
在FME中,您可以使用MQTTConnector来直接连接到任何MQTT代理。
卡夫卡是什么?
卡夫卡是一个流处理框架.它提供了一个高吞吐量和低延迟的平台来处理实时数据。
在FME中,您可以通过连接到Kafka代理KafkaConnector.
什么是AMQP 1.0?
AMQP 1.0(高级消息队列协议)是一种通常用于在应用程序之间进行可靠消息传递的消息传递协议.作为一种连线级协议,AMQP 1.0旨在与各种操作系统、框架和语言互操作,而不局限于特定的供应商。在Azure中,它是Azure服务总线和Azure事件集线器的主要协议。
Azure信息服务
现在让我们看看Azure上的消息服务,以及如何通过FME连接到它们。理解这些协议可以为您的应用程序选择正确的Azure服务和相应的FME连接器。
Azure物联网中心
Azure物联网中心使您能够管理您的物联网设备-可以将其视为物联网设备和应用程序的消息代理。它优化用于连接物联网设备以接收消息和事件,如传感器数据,这些数据可以是时间序列或离散事实。Azure物联网支持MQTT和AMQP协议。对于低功耗设备,经常使用MQTT,因为它是轻量级的。物联网集线器还可以用于向物联网设备发送命令。
设备到云通信的一个例子是来自监测冷却系统的传感器的温度数据。物联网设备将这些事件发布到物联网中心,然后该中心可以处理这些消息以采取行动。然后发送一个命令应用设备例如,如果温度过高,在需要时打开一个备用系统。
使用FME,您可以使用AzureIoTConnector使用MQTT协议连接到Azure IoT Hub。
Azure队列存储
Azure队列存储服务是典型的消息处理服务.与队列存储的通信通过HTTP协议。它非常适合将命令作为有效负载保存的事件。通常,消息包括一组要在由处理客户机执行的时间范围内执行的指令。
一个常见的场景是,处理客户端从队列中提取消息。一旦客户端完成了该操作,它就会向队列报告消息已被处理,并且可以将其从队列中删除。
一个例子就是上传图片来调整大小。消息有效负载中的命令或指令包括图像的源目的地、应该如何调整图像的大小以及存储处理后的图像的目的地。Azure队列存储对于简单的消息队列应用程序非常有用,如果队列的大小可能超过80gb。
FME与Azure服务总线通过AzureQueueStorageConnector.
Azure服务总线
Azure服务总线是将消息传递平台作为支持AMQP 1.0的服务.Azure Service的用例与Azure Queue存储非常相似,主要关注客户端从队列中取出并单独处理的命令类事件。与Azure队列存储的主要区别在于Azure服务总线的丰富特性,即对队列和主题/订阅的支持。
队列用于点到点传递,其中发送方和接收方都具有相同的功能。Fanout场景对一个主题使用主题和订阅模型,并通过过滤器连接到多个订阅。接收者可以通过订阅来接收消息,并确保他们只接收他们感兴趣的消息。
使用Azure服务总线的一个例子是一个应用程序,它从在线商店接收订单并向主题服务总线发送消息。接收者可以订阅这个主题,然后按照这个顺序采取行动。订阅之后可以发送电子邮件或更新库存。如果您的应用程序只对来自特定存储的订单感兴趣,则接收方可以过滤以接收来自该存储的消息。
FME与Azure服务总线通过AzureServiceBusConnector.
Azure的活动中心
Azure的活动中心支持Kafka和AMQP 1.0消息传递协议.在处理实时事件流时,推荐使用Azure事件集线器。现有的Kafka客户端可以连接到Azure事件中心,提供了部署自己的Kafka集群的替代方案。
Azure Event Hub经过优化,允许每秒处理大量消息,非常适合实时处理数据或分析在特定时间范围内接收到的数据。
一个例子是使用事件集线器来跟踪来自网站的点击流。使用这些数据可以分析用户的旅程。事件被发送到Azure Event hub,然后通过使用分区在下游并行处理。
FME与Azure事件中心通过AzureEventHubsConnector它使用的是AMQP 1.0协议。在azure的定价结构下,使用AzureEventHubsConnector连接到事件集线器可能比使用KafkaConnector更便宜。连接器还有一个附加特性,用于存储接收端在流中的位置的检查点信息。这样,如果接收方断开了与分区的连接,检查点可以提供一种恢复的方法,并在相同的地方重新开始接收。
自己试试
使用FME,您可以与Azure平台无缝集成,并在应用程序之间传输数据。今天就下载FME的免费试用版,或者查看这些资源来了解更多关于Azure和FME的信息:
瑞恩斯科维尔
Ryan是Safe云应用团队的软件开发人员。亚搏在线在编程之外,他用吉他和键盘征服了当地的山峰和堵塞。
留下一个回复