Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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
RabbitMQ仲裁队列-数据是否仅写入/传递到一个节点?_Rabbitmq_Amqp_Rabbitmq Exchange_Raft_Quorum - Fatal编程技术网

RabbitMQ仲裁队列-数据是否仅写入/传递到一个节点?

RabbitMQ仲裁队列-数据是否仅写入/传递到一个节点?,rabbitmq,amqp,rabbitmq-exchange,raft,quorum,Rabbitmq,Amqp,Rabbitmq Exchange,Raft,Quorum,在RabbitMQ仲裁队列(使用raft)中,如4个节点(N1-N4)的集群中 我可以有一个只能从N1/N2读取数据的消费者吗?在这种情况下,N3中生成的消息是否会通过N1/N2传递给消费者 根据以下职位的文件: 有了Raft,所有的读和写都要经过一个领导者,他的工作就是 将写操作复制到其跟随者。当客户端试图 读/写给跟随者,告诉他领导者是谁,并告诉他去做什么 将所有写操作发送到该节点。领导只会确认写的内容 一旦节点的仲裁确认它们已写入 将数据存储到磁盘。仲裁只是节点的多数 如果是这种情况,那

在RabbitMQ仲裁队列(使用raft)中,如4个节点(N1-N4)的集群中

我可以有一个只能从N1/N2读取数据的消费者吗?在这种情况下,N3中生成的消息是否会通过N1/N2传递给消费者

根据以下职位的文件:

有了Raft,所有的读和写都要经过一个领导者,他的工作就是 将写操作复制到其跟随者。当客户端试图 读/写给跟随者,告诉他领导者是谁,并告诉他去做什么 将所有写操作发送到该节点。领导只会确认写的内容 一旦节点的仲裁确认它们已写入 将数据存储到磁盘。仲裁只是节点的多数


如果是这种情况,那么如果只有领导者节点来完成所有工作,那么如何实现可伸缩性呢?

首先,RabbitMQ集群应该有奇数个节点,以便在发生网络分区时始终可以建立大多数节点

使用者始终可以读取RabbitMQ集群中的任何节点。如果队列主/镜像未在使用者连接的节点上运行,则通信将转发到另一个节点

如果仅仅是领导者节点将发生变化,那么如何实现缩放 做所有的工作

“缩放”是一个非常不具体的词,我不太愿意回答这个问题。但我想你会问多个仲裁队列会发生什么。答案是,每个队列都有自己的前导,这些前导分布在集群中


注意:RabbitMQ团队监控
RabbitMQ用户
,并且有时只回答有关StackOverflow的问题