在https://www.rabbitmq.com/ha.html上,我了解了这两个属性:
但是我找不到关于这些的任何定义。这两个属性之间的主要区别是什么?什么时候使用?以及如何配置它以实现可用性一致性(CAP定理)?
答案 0 :(得分:1)
这两个属性之间的主要区别是什么?
两者之间的区别在于后者可能由于各种原因而发生,例如节点重启,网络故障等。它们都有不同的触发点。当节点发生故障,失去连接或从集群中移除时,将触发render() {
return (
<div>
<HighchartsReact
...
callback={function(chart) {
chart.renderer.label().css().attr().add()
}}
/>
</div>
);
}
。当节点正常关闭时,将触发ha-promote-on failure
。
何时应用?
当队列主节点发生故障时,RabbitMQ提供了一个选项来升级包含该队列的节点作为主队列节点。使用ha-promote-on-shutdown
或ha-promote-on failure
参数配置升级的方式。
ha-promote-on-shutdown
:当参数设置为always
时,包含该队列的任何一个节点都将被选为主节点。使用此选项,队列可能无法同步,并且可能丢失消息。
always
:将参数设置为when-synced
时,将选择与主队列节点同步的节点。在这里,您可以确保所选节点将包含与主节点相同的消息。但是它有一个缺点。如果没有队列与主服务器同步,则不会选择任何节点。
默认情况下,when-synced
设置为ha-promote-on-shutdown
,而when-synced
设置为ha-promote-on-failure
。
以及如何配置它以实现可用性一致性 (CAP定理)?
要保持一致性,请使用always
;要获得可用性,请使用when-synced
参考-https://www.rabbitmq.com/ha.html#promoting-unsynchronised-mirrors