刚刚开始使用Amazon SQS服务,所以想知道是否有人可以引导我进入正确的方向。如果我将rest web-api接口暴露给客户端,并且在每个http请求之后,我希望将异步消息发送到我的独立服务,该服务负责在数据库中创建特定的实体并处理某些逻辑。如下所示:
var auctionRegistrationCommand = AuctionRegistrationCommand
.CreateFromRequest(lotId, request);
//var sqsClient = new AmazonSQSClient();
//var response = sqsClient.SendMessageAsync(..resitrationCommaon..);在创建实体之后,我希望将创建的实体的Id返回给我的客户端,这样它就可以使用它来更新它,或者对rest api进行一些额外的调用。但是我不知道该怎么做。有没有什么模式或方法来支持这样的场景?看到一些使用Amazon SQS的例子会很完美,但一般的解释也会很有帮助。
发布于 2016-10-09 16:10:07
假设您的两个系统是S1和S2,其中会发生以下情况:
考虑到异步系统的本质,#3并不简单。例如,你不知道S2什么时候会处理你的请求。
可能的解决方案:
MessageId作为响应。您将此MessageId返回给客户端。MessageId到entity-id的映射。每当使用MessageId处理消息并创建新实体时,它都会在shared data store.可以在here中找到来自SQS的MessageId的文档。
https://stackoverflow.com/questions/39788745
复制相似问题