消息传递服务可以帮助解决许多不同的问题。在高水平上,它们解决了两个主要问题:

  1. 消息处理:通过为组件提供一种可靠和可伸缩的通信方式,支持解耦的应用程序架构。
  2. 流处理:支持流处理工作流亚搏在线.支持此功能的消息传递服务构建在传统消息传递处理框架之上,增加了对复杂流处理操作的支持和回溯时间的能力。

有许多不同的消息传递代理和协议,但是您如何知道哪个对您的项目是正确的呢?在这篇博客中,我们将专注于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的信息:

关于数据 关于FME 物联网 消息传递代理 消息传递协议 微软Azure

瑞恩斯科维尔

Ryan是Safe云应用团队的软件开发人员。亚搏在线在编程之外,他用吉他和键盘征服了当地的山峰和堵塞。

评论

留下一个回复

您的电子邮件地址将不会被公布。必需字段被标记

相关的帖子