Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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
Amazon web services 如何在Amazon Sqs/Sns中创建主题_Amazon Web Services_Amazon Sqs_Amazon Sns - Fatal编程技术网

Amazon web services 如何在Amazon Sqs/Sns中创建主题

Amazon web services 如何在Amazon Sqs/Sns中创建主题,amazon-web-services,amazon-sqs,amazon-sns,Amazon Web Services,Amazon Sqs,Amazon Sns,我有一个进程,它将一些数据(json)发布到Aws Sqs上的队列中。另一个进程从该队列中读取。这一切都很好 现在,我想创建一个主题,它可以被多个进程监听,并且数据被传送到所有进程。例如,Activemq和许多其他消息服务器都具有创建主题的功能。我在AWS上找不到这样的东西。我能找到的最接近的是AWS SNS 据我所知,AWS-SNS允许多个客户端订阅一个主题。但是订阅的类型可以是电子邮件、Http或Sms等等。。。这真的不符合我的目的。我希望像Sqs一样在我的所有客户机中接收json数据 这是

我有一个进程,它将一些数据(json)发布到Aws Sqs上的队列中。另一个进程从该队列中读取。这一切都很好

现在,我想创建一个主题,它可以被多个进程监听,并且数据被传送到所有进程。例如,Activemq和许多其他消息服务器都具有创建主题的功能。我在AWS上找不到这样的东西。我能找到的最接近的是AWS SNS

据我所知,AWS-SNS允许多个客户端订阅一个主题。但是订阅的类型可以是电子邮件、Http或Sms等等。。。这真的不符合我的目的。我希望像Sqs一样在我的所有客户机中接收json数据


这是可以实现的吗?如果是,如何订阅?

您可以将多个SQ订阅到单个SNS主题中:

然后将分发给所有人


另一种选择是使用动觉——但设置起来更困难。在那里,您还可以从流中读取多个客户端。

amazon mq是一个托管的活动mq服务。也许这将有助于满足您的需求?

谢谢您的回答,但要使这项功能发挥作用,我必须首先在sqs中创建多队列。这是没有道理的。因为如果我必须创建多个队列,那么一个主题的目的是什么。我可以向所有人公布我自己Queues@pvpkiran-当然,您必须创建多个SQS队列,每个客户机都需要具有唯一的“消息存储”,以便进行处理。其目的是有一个中心点(SNS主题),您可以在这里发布消息,并将其分发给所有订阅(在您的情况下是SQS)。当你再添加一个消费者时,你只需订阅SNS主题即可。如果您自己发布所有消息,那么您必须自己完成所有这些逻辑。到底是什么阻碍了你为每个客户创建SQS并订阅单个SNS主题?谢谢你的反馈。我认为这是额外的开销。我需要创建一个主题和n个队列来实现这一点,而在其他JMS消息传递系统(如activemq或rabbitmq)中,我可以通过创建主题来实现同样的目标。我更喜欢那个而不是这个。这里有两个多运动部件。SNS,SQS.@pvpkiran-如果我对您的用例了解得更多,那会有所帮助。SNS/SQS非常健壮,这是有原因的,如果您想100%保证任何已发布的消息都能到达所有SQS队列,并且在处理之前一直保持在那里,那么您就需要使用它。假设您有一个从SQS
Y
读取的服务
X
,并且您希望将其放大,因此您可以放大10个服务
X
实例。如果将消息发布到
Y
,是希望所有10个实例都获得此消息,还是只希望服务
X
的一个实例来处理此消息?