Amazon web services 如何处理无序的微服务消息?
我们采用了AWS支持的微服务体系结构,其中不同种类的有效负载通过数据库中的mysql.lambda_async以UUID和类型进入系统 问题是,我们已经注意到消息可能会出现混乱。设想具有以下消息类型的场景:Amazon web services 如何处理无序的微服务消息?,amazon-web-services,architecture,microservices,Amazon Web Services,Architecture,Microservices,我们采用了AWS支持的微服务体系结构,其中不同种类的有效负载通过数据库中的mysql.lambda_async以UUID和类型进入系统 问题是,我们已经注意到消息可能会出现混乱。设想具有以下消息类型的场景: 解除指派角色 分配角色 当实际意图是快速切换时: 分配角色 解除指派角色 现在我们有一个拥有错误(提升)权限的用户 我做了一些粗略的研究,例如,答案建议使用序列号 引入序列号将非常困难,因为我们有许多不同类型的消息。一个序列号需要一个同步计数器,在这里,我们已经尽了很大的努力来实现简单的异步
我缺少的是更简单的解决方案吗?我想说有一个无法解决的问题:
- 您希望完全异步
- 你的结果需要顺序性
尽可能做到异步和并行(根据消息类型/主题)我想说有一个无法解决的问题:
- 您希望完全异步
- 你的结果需要顺序性
尽可能做到异步和并行(根据消息类型/主题)您考虑过SQS FIFO队列吗?保证以先进先出的顺序一次性交付给消费者(Lambda?)。我没有考虑过,但是mysql.lambda_async进入lambda,然后将其放入(FIFO)队列。我仍然担心可能会出现无序情况。发布消息时,mysql.Lambda_async触发的Lambda应该等到确认消息1已传递到队列后,再继续将消息2发布到队列。“不支持将FIFO SQS队列作为事件源”。。。哦,天哪。你考虑过SQS FIFO队列吗?保证以先进先出的顺序一次性交付给消费者(Lambda?)。我没有考虑过,但是mysql.lambda_async进入lambda,然后将其放入(FIFO)队列。我仍然担心可能会出现无序情况。发布消息时,mysql.Lambda_async触发的Lambda应该等到确认消息1已传递到队列后,再继续将消息2发布到队列。“不支持将FIFO SQS队列作为事件源”。。。哦,天哪。