![]() |
1
0
有一个已知的模式,cqrs(命令查询责任分离),您可以找到许多关于如何通过事件实现它的例子,称为eventsourcing。您不需要使用eventsourcing,您只需发布到队列并订阅返回以处理请求,您还可以轻松地扩展架构。 在C中,有一个事件源框架, https://github.com/gautema/CQRSlite 还有一个关于如何使用sacha的很好的解释, https://www.codeproject.com/articles/991648/cqrs-a-cross-examination-of-how-it-works 你也可以在这里找到更多的细节, https://www.youtube.com/watch?v=t2AI9hODJ2E&t=1247s 事件寻源变得不那么复杂,除非你真的需要它,马丁·福勒几乎没有关于事件寻源的利弊的好文章, https://martinfowler.com/eaaDev/EventSourcing.html |
![]() |
2
0
我们做了什么 Careem 我们的微服务系统架构 事件 它位于亚马逊的SQS之上。任何服务都可以是此服务的发布者或订阅者。当任何服务使用我们的事件发布者SDK API发布事件时,该事件将被放入Amazon SQS中。然后事件处理器SDK检查订阅服务器列表中存储在dynamodb中的特定类型的事件。对于每个订阅服务器,都有一个单独的队列(sqs),事件处理器将事件从sqs中取出,并将其放入每个订阅服务器的队列中。然后,事件使用者SDK从队列中峰值化该事件,并推动关联服务。整个过程是异步的,这意味着发布服务器和订阅服务器服务不必等待任何响应或确认。 无论您是否希望将其视为专用服务,您都需要事件来处理异步任务。 |