开发者社区> 问答> 正文

IoT 队列和普通队列有哪些差异点?

IoT 队列和普通队列有哪些差异点?

展开
收起
令人无语的八阿哥 2021-10-14 15:21:09 649 0
1 条回答
写回答
取消 提交回答
  • 1. 上下行隔离拆分

    在 IoT 场景中,我们把需要队列分为两个场景,一个是上行队列,一个是下行队列。拆分之后,可以隔离上下行链路,控制一个设备,比如支付成功要下发打开柜子等,上行出任何问题,千万不能影响到下行业务。另外,上下行两条链路的特点差异非常大。设备上行消息,并发量非常高,但很多场景下对于可靠性和时延要求低,而设备下行消息,并发量则比较低,但下行消息(一般是控制设备指令)要求到达成功率很高。

    28.png

    2. 支持设备级的海量 topic

    传统队列的核心诉求是,不论堆积多少不影响它的性能。kafka 的 topic 一多,原本消 息顺序写文件优势就会导致一个 broker 要退化到随机写,失去优势,另外要 zookeeper 来协调这么多 topic 也是有局限,所以这些队列本身有提供一个外挂代理桥接器对外入口是 多个设备 topic,再桥接映射到少量的实际 kafka topic,这方案有一定可行性,但做不到 隔离效果,治标不治本。

    通过,图 1 和图 2 对比较明显,一个队列拥塞尽量减少对其它设备影响。我们需要的 是“海量 topic 尽量相互隔离,并且不影响整体性能”,尽量做到设备 A 的消息堆积 topic,不影响设备 B。

    29.png

    3. 实时生成消息优先发送

    先举一个例子,一个快递柜业务的队列堆积,然后“此时此刻”在柜子旁边的用户死命 的在旁边用手机点开柜子怎么也打不开(此时后端系统都恢复了),问题就是队列里面还有 几十万条的消息,新来的消息需要排队, 等着之前的那些消息消费完,甭管这些消息还有没 有用。 因此,实时生成消息优先发送,堆积的消息进入降级模式。

    资料来源:电子书《AIoT 物联网开发实战(上)》,下载链接:

    https://developer.aliyun.com/topic/download?id=1147

    2021-10-14 15:44:30
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
ST + AliOS > Smart IoT ! 立即下载
IOT赋能旅行场景的实践与展望 立即下载
阿里云IoT物联网市场暨合作伙伴计划发布 立即下载