时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Microsoft Azure网络
小提示:您能找到这篇{Azure 消息 & 事件服务的选择 – 中篇}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的Azure 消息 & 事件服务的选择 – 中篇内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
在上篇中我们分别对了消息服务中三种类型服务做了介绍和对比,它们包括Storage queue、Service bus queue、Service bus to危机公关的基本方针内容pic。这篇文章我们继续对事件服务中的Event Hub和IOT Hub分别做介绍。 1.Event Hub a.什么是Event Hub Event Hub服务可以在短时间内接收由设备或服务生产大量数据流。 这里的“短时间”和“大量”可以达到每秒钟接收百万级别的数量。传递到Event Hub的数据更准确来讲是数据流,即使流动到Event Hub的数据量非常大,也可以保证低延迟接收到所有的数据流,并且系统是可靠稳定的。 在Event Hub的世界里,数据被称为“事件”而不再是“消息”,这里我们对这两个概念做进一步的介绍,这将帮助我们了解消息服务和时间服务的区别。“事件”和“消息”是不同的,简单来讲消息是有明确目的意图的,即它被发送到后端是用来执行特定的操作,发送端需要知道对应的操作是否被执行,需要得到对应的响应;而“事件”则是反映一个事实,是发生在过去的一个事件记录,发送端发出这个“事件”后则不需要了解后续的操作,也不需要拿到接收端收到“事件”的响应。 b.服务特性 Event Hub做为处理高并发数据流的服务有丰富的产品特性: 首先Event Hub支持用户使用AMQP协议发送事件到服务端,这方便不同的设备、应用传递事件到服务端。 其次在Event Hub中,用户是通过“consumer groups”来接收发送到Event Hub中的事件的,用户可以创建多个“consumer groups”,这样每个接收端可以根据自己的节奏并且依赖于特定的“consumer groups”来接收Event Hub中的数据,依赖于不同“consumer groups”的不同的接收端相互之间是完全独立互不干扰的。 另外在Event Hub中有一项非常重要的功能,即Event Hub允许接收端从不同的位置开始接收消息,这依赖于Event Hub中一个非常重要的概念offset(我们可以理解为游标),offset就是用来记录接收端当前在Event Hub中读取事件的位置。在Event Hub中用户可以定义多个partition,我们可以将每个partition理解为一个队列,接收端读取每个partition上的事件,因此每个partition上都会对应有一个offset用来记录当前的位置,而“consumer groups”则可以理解为一组offset记录,它包含了当前接收端在每个partition上读取消息的当前位置。通过这项功能,接收端不需要每次都从头开始获取消息,而是可以通过获取记录位置的offset值,从相应的位置开始获取数据。 最后,作为处理高并发百万级别事件流的服务,Event Hub有很好的扩容性,一方面用户可以定义多个partition(目前我们最多可以自己创建32个partition)分担并发数据流,另外一方面我们可以增加TU(Throughput Units),每个TU允许1MB/S的进入数据和2MB/S的输出数据。需要提的一点是partition和TU是两个不同方向上的扩容。我们可以将进入Event Hub的数据想象成一个水池中的水,这一水池(事件流)通过管道(partition)1秒钟就进入Event Hub服务中。 当我们增加partition时,相当于接到Event Hub中的管道增加,这样对于同样的数据流,增加partition则进入Event Hub的数据更快;当我们增加一个TU时,相当于允许再额外增加一水池的水,这样我们允许双倍的数据流1秒钟传入到Event Hub服务中。 下面这张图表让我们能更直观的对Event Hub中Partition,Consumer Group有个了解: c.与Service bus queue的区别 Event Hub不同于以上的三种服务Storage queue/Service bus queue&topic,这些服务都是每次处理一条消息,而Event Hub则可以理解为是一个接收事件流的“管道”(pipeline)。 Event Hub的设计侧重于数据流的解决方案,它是一个“事件摄取器”,用来接受并存储事件数据,并可以快速将事件流推送到接收端,具备每秒接收和处理数百万个事件的能力。而Service bus queue则主要面向传统的企业应用程序,是典型的传递消息任务的解决方案,这些解决方案中对消息的顺序、监测重复消息、保证数据不能丢失有很高的要求。 更多关于这两项服务的区别可以参考官方链接。 d.适用场景 基于Event Hub产品特性,它非常适用于大量的消息的传递处理,如遥测或物联网的使用场景。 e.一些限制和说明 Event Hub允许多个接收端根据不同的consumer group独立相互不影响的接收消息,这一点与Service bus topic很像,但是目前每个Event Hub下最多能创建32个consumer group,而topic的subscription可以多达2000个。 另外传递到Event Hub中的事情大小最大不能超过256KB,TU最多可以增加到20个,partition最多可以增加到32个(需要注意partition在创建Event Hub时指定,一旦指定之后就不能改变)。 在Service bus queue中用户可以设定消息有TTL(time to live)值,而在Event Hub中用户可以指定事件的retention period(最长保留期)值,这是两个不同的概念,消息一旦过了TTL值,该条消息是一定会从Service bus queue中移出,然而事件过了retention period,有可能继续保留在Event Hub服务中(取决于一段时间内数据量的多少),而可以保证的是在指定的retention period期限内,该事件是一定会在Event Hub中保留,目前Event Hub事件的retention period最大值为7天。如何进行危机管理 2.IOT Hub a.什么是IOT Hub Event Hub非常适合用来处理大量数据流,但是对于物联网的应用场景它不是最佳选择。正如IOT Hub它的名字,Azure平台上的IOT Hub是专门为物联网的应用场景设计的产品。它基于Event Hub服务,并具有额外物联网所需的附加功能,比如管理和保护连接到IOT Hub上的成千上万的设备。 b.服务特性 IOT Hub可以与设备端交互,也就是支持双向通信(device to cloud和cloud to device),允许对设备执行同步或异步指令。 IOT Hub支持多种通信协议,比如,AMQPHttpMQTT协议,而MQTT是非常流行的物联网协议。对于那些不支持以上三种通信协议的设备,Azure IOT Hub提供给用户一套Gateway的SDK,从而保证这些设备可以通过已有的能力(蓝牙)与Gateway通信,Gateway将消息传递到Hub中,从而实现设备与云端的通信。 IOT Hub具备设备管理能力,从而可以对设备进行硬件升级、报告配置管理信息。 Azure IOT作为构建物联网解决方案的关键技术,实现将前端收集的数据传递到后端应用中,在Azure IOT Hub中,可以通过是Azure平台提供的应用对接收到Hub中的数据进行处理,比如(流分析、logic app、HDInsight等等);也可以通过IOT Hub提供的SDK构建接收数据程序对数据进行处理;另外还可以通过配置message routers将数据重新导向到其他的服务。这里我们对message router做进一步的解释,当IOT Hub接收到设备端的一条数据后,首先会监测用户是否配置了自定义的router,如果有并且该条消息满足对应的规则,那么IOT Hub会将该条消息传递到router对应的服务中去,而不是存放在默认的Event Hub服务中(如果没有任何router的配置,默认一条消息进入IoT Hub中是会自动存放在默认的一个Event Hub中)。 下图是IOT Hub架构和功能的概述: c.与Event Hub的区别 首先IOT Hub与Event Hub一个非常明显的区别在于,Event Hub只能用来接收事件流,而IOT Hub支持双向通信(device to cloud和cloud to device):不仅可以接收来自设备端成千上万的数据,还可以自己发送指令/消息到设备端。 其次,Event Hub无法区分发送数据到云端的不同的设备,Event Hub无法感知到设备的存在,在IOT Hub中设备需要在云端注册,IOT Hub对设备进行身份管理和验证,比如设备重启,设备状态监控等等。基于IOT Hub对设备身份验证管理,IOT Hub可以对单个设备中断连接,而这一点Event Hub做不到(在Event Hub中所有的设备端都使用同一个连接字符串)。 最后,Event Hub只能允许并发5000个连接(基于AMQP协议),而IOT作为构建物联网的解决方案,允许上百万级别的设备连接数,从这个角度上来看,IOT Hub也更适合物联网解决方案。 更多关于IOT Hub和Event Hub的区别可以参考官方链接。 d.适用场景 用户可以使用IOT Hub构建典型的物联网解决方案,从而保证数百万的物联网设备和云端托管的后端应用之间实现安全、可靠的通信。 e.一些限制和说明 不同级别的IOT Hub限制说明是不一样的,这里我们以S1为例,设备的连接数每秒最多100个或者每unit最多为12这个,这两个标准都不可超。虽然cloud to device消息的限制为100/分钟/unit,但是每个设备上最多可以存储50个cloud to device的消息(消息在设备上以queue的方式存储)。 更多关于IOT Hub的一些限制说明可以参考官方链接。 在上篇和中篇我们分别对了消息/事件服务中五个服务做了介绍和对比,在下篇中我们继续对剩下的三种服务做介绍,其中Service bus Relay和Notification Hub相比较之前的五种服务有比较大区别,而Event Gird则又是Azure平台最新推出的一种Serverless服务,如果您对这个话题感兴趣可以在下篇中继续了解详细内容。 |
上一篇:被AppStore拒绝上架的原因总结
下一篇:UI规范之iOS logo、启动图尺寸、AppStore上架图
基于对传统行业渠道的理解,对互联网行业的渠道我们可以下这样一个定义:一切...
小米应用商店的后台操作和苹果是比较相似的,因为都能填写100字符关键词,允许...
小米的规则目前是在变更中的,但是根据经验小米的搜索排名评分的高低是个很重...
为了恰饭,有时候是要接入一些广告的,所以FB也专门有一个广告的SDK,这就是A...
在 2018 年于旧金山举行的游戏开发者大会上,Amazon Web Services (AWS) 曾宣布,目前世...
关于Facebook Audience Network如何收款的问题,其实官方已经给了详细的步骤。本文主要...
本文介绍了Audience Network对广告载体的质量检查,以及它重点广告形式需要注意的问...
随着iOS开发,作为开发者或公司需要针对iOS App开发涉及的方方面面作出对应的信息...
Facebook和谷歌对出海企业广告渠道都很熟悉,但事实上,在国外还有一些渠道也很...
卖家从做号的第1分钟开始,就一定要想好变现路径是什么?一定要以变现为目的去...
小提示:您应该对本页介绍的“Azure 消息 & 事件服务的选择 – 中篇”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通Azure 消息 & 事件服务的选择 – 中篇的相关事宜。
关键词:Azure,消息,&,事件服务的选