Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用多个使用者使用来自多个SQS队列的消息?_Java_Multithreading_Amazon Web Services_Performance_Amazon Sqs - Fatal编程技术网

Java 如何使用多个使用者使用来自多个SQS队列的消息?

Java 如何使用多个使用者使用来自多个SQS队列的消息?,java,multithreading,amazon-web-services,performance,amazon-sqs,Java,Multithreading,Amazon Web Services,Performance,Amazon Sqs,我目前正在开发一个Java应用程序,它将能够使用来自SQS的消息,并将消息列表传递给使用该应用程序的客户机。 现在我想问一下,我的应用程序的客户端是否希望轮询来自多个队列的消息,那么我如何实现这一点 Q.)为什么客户端将同时从多个队列进行轮询? ->假设客户机的数据依赖于多个上游服务,因此TYPE1数据将由服务1推送到queue1,TYPE2数据将由服务2推送到queue2,我的客户机将需要TYPE1和TYPE2数据来处理他们想要实现的功能 示例:给出一个假设的示例(因为它将完全依赖于客户的上游

我目前正在开发一个Java应用程序,它将能够使用来自SQS的消息,并将消息列表传递给使用该应用程序的客户机。 现在我想问一下,我的应用程序的客户端是否希望轮询来自多个队列的消息,那么我如何实现这一点

Q.)为什么客户端将同时从多个队列进行轮询? ->假设客户机的数据依赖于多个上游服务,因此TYPE1数据将由服务1推送到queue1,TYPE2数据将由服务2推送到queue2,我的客户机将需要TYPE1和TYPE2数据来处理他们想要实现的功能

示例:给出一个假设的示例(因为它将完全依赖于客户的上游服务),假设应用程序的客户将分配客户为该汽车支付的总汽车价格

现在,上游团队可以是室内设计团队、工程团队等

 TYPE1 data pushed to queue 1 by Interior design team = X$ (Cost for interior design of car)
 TYPE2 data pushed to queue 2 by engineering team = Y$(Cost to build the core features of car)
现在这两项服务是独立的,因此客户应使用两个不同的队列来获取其输出,但要分配车辆的总体价格,这两项输出都很重要。
所以这两个队列不会有相同的数据,这就是为什么我想知道是否有任何方法可以构建多个消费者来消费“n”个队列中的消息(取决于将使用我的应用程序的客户端)

我想你在寻找这个:对于10k用户:对于OP:你不应该使用SQS。您应该为不同的消息设置消费者,每个消费者更新数据库中的记录,然后可能会检查是否所有消息都在那里-如果所有消息都已到达/记录已完成,则对数据执行一些操作。但是,您希望同时使用来自多个队列的消息的方式是没有用/不可行的。例如,如果在删除第一条和第二条消息之间服务器崩溃,那么您如何从中恢复,那么您的队列中的数据已被破坏。您如何处理未在正确时间收到的邮件?请注意,这两个服务属于两个不同的团队这一事实并不是反对它们发送到同一队列的理由。如果您决定您的API不是一个Web API,而只是一个SQS队列,那么这是完全正确的,您可以向两个团队授予写入同一队列的权限。