首页>动态 >内容

讯息发布和订阅服务Amazon SNS提供先进先出主题功能

动态2021-02-11 06:02:03
最佳答案

AWS使用者现在可以在所有商业地区,使用SNS FIFO(First-In-First-Out)主题,让用户也可以在Pub/Sub(Publish/Subscribe)讯息服务中,以严谨的顺序处理事件,并且排除重複的讯息。

AWS提到,在设计分散式软体架构的时候,定义服务交换讯息的方式,是一件重要的工作,因为在非同步通讯用例解耦元件,就能简化扩展、减少更新带来的影响,并且让发布新功能更轻鬆,而非同步服务到服务(Service-to-Service)的通讯,最常使用的形式就是讯息伫列以及Pub/Sub讯息。

讯息伫列是将讯息储存在伫列中,直到讯息消费方进行处理或是删除操作,在AWS中,用户可以使用Amazon Simple Queue Service(SQS)託管讯息伫列服务;另一种方式则是使用Pub/Sub讯息,运作方式则是将讯息发布到主题中,并传递给所有订阅该主题的讯息订阅方,AWS用户可以使用Amazon Simple Notification Service(SNS)发布和订阅讯息,讯息订阅者也能够设定过滤政策,忽略不关心的讯息。

在SQS中,用户可以使用FIFO伫列,保留讯息的发送和接受顺序,并避免讯息被多次处理,而现在AWS使用者也可在SNS用到FIFO主题功能,FIFO主题与FIFO伫列类似,管理排序和删除重複的讯息。

当讯息发布到FIFO主题时,用户能够利用讯息群组ID来管理讯息群组,每个讯息群组ID都会按照讯息抵达的顺序传送和传递,目前FIFO主题和伫列的讯息群组数量没有限制,只是用户需要事先宣告讯息群组ID,当讯息之间没有逻辑上的区别,就可以简单地使用同一组讯息群组ID,仅使用单一有序讯息群组。

由于分散式系统和客户端应用程式,有时候会产生重複的讯息,SNS可以利用SHA-256杂凑值,以讯息主体产生去重複讯息ID,在5分钟内,系统不会传递具有相同去重複讯息ID的讯息,当用户在FIFO伫列订阅FIFO主题,则该ID会被传递到伫列,避免接收重複的讯息。

用户可以结合FIFO主题和伫列一起使用,以简化应用程式的有序事件的实作,也能够用来去除无法接受的重複讯息。FIFO伫列可以使用FIFO主题中的讯息过滤功能,选择性接受讯息子集,而非接收每个发布到该主题的讯息。

免责声明:本文由用户上传,如有侵权请联系删除!