Amazon web services AWS微服务舞蹈动作设计

Amazon web services AWS微服务舞蹈动作设计,amazon-web-services,domain-driven-design,microservices,cqrs,event-sourcing,Amazon Web Services,Domain Driven Design,Microservices,Cqrs,Event Sourcing,我正在尝试使用CQRS、DDD和事件源概念为在线商店开发微服务。我将AWS运动视为事件流。我认为这对于精心设计的微服务来说是件好事。我有2项服务,客户数据服务和订购系统服务。我想查看每个客户的未付款订单总数和订单总数。因此,我应该将orderCreated事件和orderPaid事件发送到服务以获取客户数据,并重新计算相关客户的未付订单总数和订单总数 我可以将订购系统事件放到AWS Kinesis中,并在客户的命令端服务中收听它吗?我是否应该将AWS Kinesis中的事件(orderCreat

我正在尝试使用CQRS、DDD和事件源概念为在线商店开发微服务。我将AWS运动视为事件流。我认为这对于精心设计的微服务来说是件好事。我有2项服务,客户数据服务和订购系统服务。我想查看每个客户的未付款订单总数和订单总数。因此,我应该将orderCreated事件和orderPaid事件发送到服务以获取客户数据,并重新计算相关客户的未付订单总数和订单总数

我可以将订购系统事件放到AWS Kinesis中,并在客户的命令端服务中收听它吗?我是否应该将AWS Kinesis中的事件(orderCreated和orderPaid事件)持久化到客户命令端服务中的数据库?或者只更新客户查询端服务可以吗?我应该使用AWS Lambda作为事件处理器吗?你能给我一些这种型号的最佳做法吗

提前谢谢

我将AWS运动视为事件流。我认为这对于精心设计的微服务来说是件好事

我不认为这是动觉设计的用例;看这个。或者这之前

我是否应该将AWS Kinesis中的事件(orderCreated和orderPaid事件)持久化到客户命令端服务中的数据库

在我看来,问题在于:你真的不希望事件泄露给订阅者,然后不出现在记录簿中。因此,通常的顺序是将事件放入持久性存储,只有在您获得写入确认(这是“确认我们已达到最低持久性保证”的代理)之后,您才能开始共享事件

因此,大多数设计都颠倒了您提出的顺序——首先是持久存储(数据库),然后是发布。但是你正在失去延迟;在存储完成之前,订阅者无法查看事件。根据您的设计,您可能可以通过批读取来弥补其中的一些缺陷

我们尝试了SQS和SNS。但是,性能还不够好。发布和使用事件大约需要5秒钟

嗯,考虑到我在动觉学建议中看到的情况,看起来你不会比这个多出一个百分点;他们似乎建议使用全管道,而不是快速管道

我将AWS运动视为事件流。我认为这对于精心设计的微服务来说是件好事

我不认为这是动觉设计的用例;看这个。或者这之前

我是否应该将AWS Kinesis中的事件(orderCreated和orderPaid事件)持久化到客户命令端服务中的数据库

在我看来,问题在于:你真的不希望事件泄露给订阅者,然后不出现在记录簿中。因此,通常的顺序是将事件放入持久性存储,只有在您获得写入确认(这是“确认我们已达到最低持久性保证”的代理)之后,您才能开始共享事件

因此,大多数设计都颠倒了您提出的顺序——首先是持久存储(数据库),然后是发布。但是你正在失去延迟;在存储完成之前,订阅者无法查看事件。根据您的设计,您可能可以通过批读取来弥补其中的一些缺陷

我们尝试了SQS和SNS。但是,性能还不够好。发布和使用事件大约需要5秒钟


嗯,考虑到我在动觉学建议中看到的情况,看起来你不会比这个多出一个百分点;他们似乎建议使用全管道,而不是快速管道。

您能建议使用什么工具来处理此问题吗?实际上,我们在数据库中插入事件记录。但是,我们应该将一些事件发布到另一个服务。我们正在寻找使用这些已发布事件的工具。我们尝试了SQS和SNS。但是,性能还不够好。发布和使用事件大约需要5秒钟。所以,我们想尝试另一种方法来解决这个问题。我不同意。事件流是动觉的一个很好的用例。它只需要比SQS和SNS多做一点工作。@Benedict当你说你在SQS中有5秒的端到端时间时,你是使用短轮询还是长轮询?队列的吞吐量是多少?如果您使用短轮询,并且轮询更具攻击性,那么您应该能够实现更低的端到端时间。您能给出解决此问题的工具建议吗?实际上,我们在数据库中插入事件记录。但是,我们应该将一些事件发布到另一个服务。我们正在寻找使用这些已发布事件的工具。我们尝试了SQS和SNS。但是,性能还不够好。发布和使用事件大约需要5秒钟。所以,我们想尝试另一种方法来解决这个问题。我不同意。事件流是动觉的一个很好的用例。它只需要比SQS和SNS多做一点工作。@Benedict当你说你在SQS中有5秒的端到端时间时,你是使用短轮询还是长轮询?队列的吞吐量是多少?如果您使用短轮询,并且轮询更具攻击性,那么您应该能够实现更低的端到端时间。