á¡ááŸá¬ážáá¶ááá¯ááºáááºááŸáááŸá¯ááŸáá·áº ááŒáá·áºáá¬ážáá±á¬áááŸáááá¯ááºááŸá¯ááá¯á·ááẠááŒá®ážáá¬ážáá±á¬á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááŒá
áºáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠáá®ážááŒá¬ážáá±á¬ááºážáá«ážáá»á¬ážááᯠRabbitMQ ááŸáá·áº Kafka á¡ááœáẠááŒáŸá¯ááºááŸá¶áá¬ážáá«áááºá á€áá±á¬ááºážáá«ážááẠRabbitMQ á¡ááŒá±á¬ááºážááŒá
áºááŒá®áž áá±á¬ááºáá
áºáá¯ááẠRabbitMQ ááŸáá·áº ááŸáá¯ááºážááŸááºáá«á Kafka á¡ááŒá±á¬ááºážááŒá
áºáááºá áá®áá±á¬ááºážáá«ážá á¡ááŸááºááŒá®ážááá¯á· á
áááºáá»ááºážáá¬á¡á±á¬ááºáá¬ážá
á¡ááŸá¬ážáá¶ááá¯ááºáááºááŸáááŸá¯á áá®ááœááºááŸá¯ááŸáá·áº ááŒáá·áºáá¬ážáá±á¬áááŸáááá¯ááºááŸá¯ (HA) áá»á°áá¬áá»á¬ážááŸáá·áº áá»á°áá¬áá áºáá¯á á®ááœáẠááŒá¯áá¯ááºááá·áº áá¯ááºááœááºááŸá¯á¡ááá¯ážá¡áá»áŸá±á¬á·áá»á¬ážááᯠááŒáá·áºááŒáá«á áá¯á·á RabbitMQ ááẠnode á¡á á¯á¡áá±ážáá áºáá¯áá±á«áºááœáẠá¡áá¯ááºáá¯ááºááá¯ááºááŒá®ážá ááá¯á·áá±á¬áẠááŒáá·áºáá±ááá·áºá áá áºá¡ááŒá Ạá¡áá»áá¯ážá¡á á¬ážááœá²ááŒá¬ážáá¬ážáááºá ááŒáá·áºáá±ááŸá¯á áá áºáá»á¬ážááŸáá·áºáááºáááºáá¬áá»áŸáẠáá»áœááºá¯ááºááá¯á·ááẠáá®ááœááºááŸá¯ááŸáá·áº áááŸáááá¯ááºááŸá¯á¡ááŒá±á¬ááºáž ááŒá±á¬ááá¯áá±á·ááŸááááºá
á€ááá±á¬ááá¬ážáá»á¬ážááẠá
áá
áºáá
áºáᯠá¡áááºáááŒá±ááá·áºá¡áá« áááºááá¯á·ááŒá¯áá°áááºááᯠáá±á¬áºááŒáááºá ááœááºáááºáá»áááºáááºááŸá¯ áá»áá¯á·ááœááºážááŸá¯á áá¬áá¬áá»áá¯á·ááœááºážááŸá¯á áá¬á·ááºáááá¯ááºáá»áá¯á·ááœááºážááŸá¯á á¡ááŸáá¯ááºá
á¯áá±á¬ááºážááŸá¯á áááºáááºáá»á±á¬ááºáá¯á¶ážááŸá¯ ááá¯á·ááá¯áẠááœááºáááºáá»áááºáááºááŸá¯ ááŸá±ážááœá±ážááŒááºážááŒá±á¬áá·áº áá¬áá¬áá¬áá®ááááŸáááá¯ááºáá«á á€á¡áá¬á¡á¬ážáá¯á¶ážááẠáá±áá¬áá¯á¶ážááŸá¯á¶ážááŸá¯ ááá¯á·ááá¯áẠáááááá¹ááá»á¬ážáá®ááá¯á· áŠážáááºááœá¬ážá
á±ááá¯ááºáááºá áá»ááºááœááºááŸá¯á¡ááŒá±á¡áá±á¡á¬ážáá¯á¶ážá¡ááœáẠ(áá±áá¬áá¯á¶ážááŸá¯á¶ážááŸá¯áááŸáá áá±áá¬ááœá²ááŒá¬ážááŸá¯áááŸá) ááŸáá·áº áááŸáááá¯ááºááẠ(áááºááŸá¯ááŒááºážááŸáá·áº áá±ážááŒááºážáá»á¬ážááᯠáááºáá¶áááº) ááŸá
áºáá¯áá¯á¶ážáá¯á¶ážáá¯á¶ážáá®ááœááºáá±á¬ á
áá
áºáá
áºáá¯ááᯠáá°áá±á¬ááºááẠáááŒá
áºááá¯ááºááá±á¬ááºááŒá
áºáá±ááŒá®ááŒá
áºáááºá
ááá¯ááºáá»á±á¬áá®ááœá±ááŸáááŸá¯ááŸáá·áº áááŸáááá¯ááºááŸá¯ááá¯á·ááẠáá±á¬ááºá
ááºáááºážá ááá·áºáá»ááºáááºá
áœááºážáá»á¬ážáá±á«áºááœáẠááŸááá±áááºááᯠáá»áœááºá¯ááºááá¯á·ááœá±á·ááŒááºáááŒá®áž á¡áá±á¬ááºážáá¯á¶ážááŒá
áºá¡á±á¬áẠáááºááœá±ážáá»ááºááẠááá¯á¡ááºáá«áááºá ááááºážáá±á¬ááºážááá±á¬á· RabbitMQ áá²á· áá®ááœá±ážáá»ááºááŸá¯ááŒá
áºááá¯ááºáá«áááºá ááá·áºááœáẠááá¯ááá¯áá®ááœááºááŸá¯ ááá¯á·ááá¯áẠááá¯ááá¯áá¯á¶ážá
áœá²ááá¯ááºááŸá¯áá®ááá¯á· áá»áááºááœááºáá»áŸá¬ááá¯ááŒá±á¬ááºážááẠဠ"nerdy" áá®áá¬áá»á¬ážááŸááááºá
á¡áááºááŒá¯áá¬ážáá±á¬ ááŸááºáááºážáá»á¬ážááŒá±á¬áá·áº áááºááá·áºááœá²á·á ááºážáá¯á¶áá»á¬ážááẠáá±áá¬áá¯á¶ážááŸá¯á¶ážááŸá¯ááŒá áºá á±ááá¯ááºáááºááᯠáá»áœááºá¯ááºááá¯á· á¡áá°ážá¡á¬áá¯á¶á áá¯ááºáá«áááºá áá¯ááºáá±áá°áá»á¬ážá ááœá²á á¬ážáá»á¬ážááŸáá·áº á á¬ážáá¯á¶ážáá°áá»á¬ážááŒá¬ážááœáẠáá¬áááºááœááºážáááºáá áºáá¯ááŸááááºá áááºáá±á·áá»áºááᯠááœá²á á¬ážáᶠáá±ážááá¯á·ááŒá®ážáááºááŸáá·áº áááºáá±á·áá»áºááᯠááá¯á¶ážááŸá¯á¶ážá á±áááºááŸá¬ áááºážáá¡áá¯ááºááŒá áºáááºá ááœá²á á¬ážááẠáá¯ááºáá±áá°á áááºáá±á·áá»áºáááºáá¶áááŸáááŸá¯ááᯠá¡ááá¡ááŸááºááŒá¯áá±á¬á¡áá«á áá»áœááºá¯ááºááá¯á· áá¯á¶ážááŸá¯á¶ážááœá¬ážáááá·áºáááºáᯠááá»áŸá±á¬áºááá·áºáá¬ážáá±á ááá¯á·áá±á¬áº áááºáááœá²á á¬ážááŸáá·áº áá¯ááºáá±áá°ááœá²á·á ááºážáá¯á¶á¡áá±á«áºáá°áááºá áááºážááẠá¡ááŸááºááááºááŒá áºáá»ááºááá¯ááºáááºááᯠáá»áœááºá¯ááºááá¯á·ááœá±á·ááá«áááºá
Single Node Resilience Primitives
áá¶ááá¯ááºáááºááŸááá±á¬ áááºážá á®ááŒááºáž/áááºážááŒá±á¬ááºážáá±ážááŒááºáž
RabbitMQ ááœáẠáááºážá á®ááŒááºáž ááŸá áºáá»áá¯ážááŸááááº- áá¬ááŸááºáá¶ááŒááºážááŸáá·áº áá¬ááŸááºáá¶ááŒááºážáááŸááá«á á á®áááºážá¡á¬ážáá¯á¶ážááᯠMnesia áá±áá¬áá±á·á áºááœáẠááááºážáááºážáá¬ážáááºá áá¬ááŸááºáá¶áá±á¬ áááºážá á®áá»á¬ážááᯠnode á áááºáá»áááºááœáẠááŒááºáááºááŒá±á¬áºááŒá¬ááŒá®áž ááŒááºáááºá áááºááŒááºážá á áá áºáá»ááºáá»ááŒááºáž ááá¯á·ááá¯áẠáá¬áᬠáá»ááºáá»ááŒááºáž (áá±áá¬áááºáááºáááºááŸááá±áááœá±á·) áááºáááºááŸááºáááºáá±áá«áááºá ááá¯ááá¯áááºááŸá¬ áááºááẠáááºážááŒá±á¬ááºážáááºááŒááºáž (áá²ááŸááºááŒááºáž) ááŸáá·áº áááºážá á®ááŒááºážááᯠáá¶ááá¯ááºáááºááŸáá á±ááẠááŒá±ááŒá¬áá±ááá»áŸ áá¬ááááºáá¯á¶áž áááºážá á®ááŒááºáž/áááºážááŒá±á¬ááºážáááºááŒááºážááá¯ááºáᬠá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááẠá¡áœááºááá¯ááºážááœáẠááŒááºáááºáá±á¬ááºááŸáááœá¬ážáááºááŒá áºáááºá
node ááᯠááŒááºáááºá áááºáá±á¬á¡áá« ááááºááŒáááºáá±á¬ áááºážá á®ááŒááºážáá»á¬ážááŸáá·áº áááºážááŒá±á¬ááºážááᯠáááºááŸá¬ážáááºá
ááŒá²áá±á¬á á¬áá»á¬áž
áááºážá á®áá áºáá¯ááẠáá¬ááŸááºáá¶áá±á¬ááŒá±á¬áá·áº áááºážááááºáá±á·áá»áºáá»á¬ážá¡á¬ážáá¯á¶ážááẠnode ááŒááºáááºá áááºááŒááºážááœáẠá¡áááºááŸááºáá±áááºáᯠáááá¯ááá¯áá«á áá¯ááºáá±áá°á០áááºááŸááºáá¬ážáá±á¬ á á¬áá»á¬ážáᬠáá±ááŸááºáááºáá¶á·áá±á¬ (áá®ááá)á á¡ááŒá²ááŸááá±áá±á¬ áááºáá±á·áá»áºáá»á¬ážááẠááœá²á á¬ážá¡ááœáẠá¡ááá¯áááºáá¯ááºáááºááá¯ážááᯠáááºáá®ážáá±ážáá±á¬áºáááºáž áááºáá±á·áá»áºáá¯á¶ážááŸá¯á¶ážááŸá¯ááᯠáááºáá¶ááá¯ááºááŒááºážáááŸááá«áá á¡ááŒá¬ážááœá±ážáá»ááºá áá¬áááŸááá«á
ááááºážá 1. áá±ááŸááºáááºáá¶á·ááŸá¯ áááºááá
áº
áááºážá á®ááŒááºáž ááŒáá·áº á¡á á¯á¡áá±áž ááŒá¯áá¯ááºááŒááºážá
ááœá²á á¬ážáá áºáŠážááá¯á¶ážááŸá¯á¶ážááŸá¯ááá¯ááŸááºáááºáááºá áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºážááá¯á¡ááºáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠRabbitMQ node á¡áá»á¬ážá¡ááŒá¬ážááᯠá¡á á¯á¡áá±ážáá áºáá¯á¡ááŒá Ạáá±á«ááºážá ááºááá¯ááºááŒá®áž node á¡áá»á¬ážá¡ááŒá¬ážááŒá¬ážááœáẠáááºážá á®ááŒááºážááᯠááœá¬ážááŒááºážááŒáá·áº áááºáá±á¬ááºážáááºáá±á¬ááºážááá·áºááá¯ááºáááºá á€áááºážá¡á¬ážááŒáá·áºá node áá áºáá¯ááŸáá»ááºááœááºáá«áá áá»áœááºá¯ááºááá¯á·ááẠáá±áá¬ááá¯á¶ážááŸá¯á¶ážáá² áááºáááºáááŸáááá¯ááºáááºááŒá áºáááºá
áááºážá á®ááŒááºážááᯠáá¯á¶áá°áá°ážááŒááºáž-
- áá±ážááŒá®ážáááºááá·áº command á¡á¬ážáá¯á¶ážááᯠáááºáá¶ááá·áº áááºááááºážá á®áá áºáᯠ(áá¬á áá¬)
- áááºááááºážá á®á០á á¬áá»á¬ážááŸáá·áº áááºáá¬áá±áá¬á¡á¬ážáá¯á¶ážááᯠáááºáá¶ááá·áº ááŸááºáá»ááºáá áºáᯠááá¯á·ááá¯áẠáá áºáá¯áááºááá¯áááºá á€ááŒá±ážáá¯á¶áá»á¬ážááẠáá»áááºááŸááááºá¡ááœáẠááá¯ááºáá² á¡áááºáááºá¡ááœááºáá¬ááŒá áºáááºá
ááááºážá 2. áááºážá
á®ááŒáá·áºááŒááºáž
Mirroring ááᯠááá·áºáá»á±á¬áºáá±á¬áá°áá«áááŒáá·áº áááºááŸááºáááºá áááºážááœááºáááºááẠááœá¬ážááááºážááááºážááŸáá·áº áááºážá á®áááºááŸáááá·áºááá·áº áá¯á¶ááŸááºáá»á¬ážááá¯ááẠááœá±ážáá»ááºááá¯ááºáááºá á¥ááá¬áá»á¬áž-
ha-mode: all
ha-mode: exactly, ha-params: 2
(áá¬á áá¬áá áºáá¯ááŸáá·áº ááŸááºáá áºáá»ááº)ha-mode: nodes, ha-params: rabbit@node1, rabbit@node2
áá¯ááºáá±áá° á¡áááºááŒá¯áá»ááº
áááááºáááºážááá¯ááºáá°ážááŸá¯á¡á±á¬ááºááŒááºáááºá áá¯ááºáá±áá°á¡áááºááŒá¯áá»ááºáá»á¬áž ááá¯á¡ááºáááºá áááºážááá¯á·ááá«áá²á áááºáá±á·ááºá»áá»á¬ážáá¯á¶ážááŸá¯á¶ážááá¯ááºááŒá±ááŸááááºá áááºáá±á·áá»áºááᯠáá áºááºááá¯á·áá±ážááŒá®ážáá±á¬áẠá¡áááºááŒá¯áá»ááºáá áºáá¯ááᯠáá¯ááºáá±áá°áᶠáá±ážááá¯á·áááºá RabbitMQ ááẠáááºáá¶áááŸááá»áááºááœááºááá¯ááºáá² áá áºááºááá¯á· áááºáá±á·áá»áºáá»á¬ážááᯠáá®áá®á áá¹ááá·áºáá»á¬ážá áœá¬ááŸááá±á¬ áá±áá¡ááœááºáž á¡áá»áááºá¡áá«á¡ááá¯áẠáá±ážáá±ážáááºá áááºážá á®ááŒááºážááᯠáááºáááºááŒáá±á¬á¡áá«á ááŸááºáá»á¬ážá¡á¬ážáá¯á¶ážááẠáááºážááá¯á·á áááºáá±á·áá»áºá áááá¹áá°ááᯠáá áºááºááá¯á· áá±ážááŒá®ážááŸáᬠá¡ááá¡ááŸááºááŒá¯ááŸá¯ááᯠáá±ážááá¯á·áá«áááºá ááá¯ááá¯áááºááŸá¬ á¡áááºááŒá¯áá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº latency ááᯠáá±á«ááºážááá·áºáá±á¬áºáááºáž áá±áá¬áá¯á¶ááŒá¯á¶áá±ážááẠá¡áá±ážááŒá®ážáá«á áááºážááá¯á·ááẠááá¯á¡ááºáá«áááºá
ááŸá¯á¶ážáá°áááºážá á®
ááœá²á á¬ážááŸááœááºááẠááá¯á·ááá¯áẠáá»ááºááœá¬ážáá±á¬á¡áá«á ááᯠnode áá±á«áºááŸá áááºážá á®áá±á«ááºážáá±á¬ááºáá»á¬áž (áá¬á áá¬) áá»á¬ážá¡á¬ážáá¯á¶ážááẠáááºážááŸáá·áºá¡áá° áá»ááºá á®ážááœá¬ážáá«áááºá ááá¯á·áá±á¬áẠá¡á á¯á¡ááœá²á·ááẠáá¬á áá¬áá áºáá¯á á®á ááŸá±ážá¡áá»áá¯á¶ážááŒá±ážáá¯á¶ááᯠááœá±ážáá»ááºááŒá®áž áááºážá¡á¬áž áá¬á áá¬á¡áá áºá¡ááŒá ẠááŒáŸáá·áºáááºáá±ážáááºá
ááááºážá 3. áá¯á¶áá°áá°ážáá¬ážáá±á¬ á
á®áááºážáá»á¬ážááŸáá·áº áááºážááá¯á·ááá°áá«ááá»á¬áž
ááœá²á á¬áž á áá±á¬áẠáá»ááœá¬ážáááºá Broker 3 ááŸá Queue C ááŒá±ážáá¯á¶á¡á¬áž áá»áœááºážáá»ááºá¡ááá·áºááá¯á· ááá¯ážááŒáŸáá·áºáá¬ážááŒá±á¬ááºáž áááááŒá¯áá«á Broker 2 ááœáẠQueue C á¡ááœáẠááŸááºá¡áá áºáá áºáá¯ááᯠáááºáá®ážáá¬ážááŒá±á¬ááºážáááºáž áááááŒá¯áá«á RabbitMQ ááẠááá·áºáá°áá«ááá»á¬ážááœáẠáááºááŸááºáá¬ážááá·áº áááºáá°ááœá¬ážááŸá¯á¡áá»ááºááᯠááááºážááááºážááẠá¡ááŒá²ááŒáá¯ážá á¬ážáá±áá«áááºá
ááááºážá 4. Broker 3 ááẠáá¡á±á¬ááºááŒááºáááŒáá·áº áááºážá
á® C ááᯠáá»ááŸá¯á¶ážá
á±áá«áááºá
áá±á¬áẠBroker 1 á áá»ááœá¬ážáááºá áá»áœááºáá±á¬áºááá¯á·ááŸá¬ ááœá²á á¬ážáá áºáá±á¬ááºáá² áá»ááºáá±á¬á·áááºá Queue B ááŒá±ážáá¯á¶á¡á¬áž áá¬á áá¬á¡ááŒá Ạááá¯ážááŒáŸáá·áºáá¬ážáááºá
áá¯á¶ - á
áá»áœááºá¯ááºááá¯á·ááẠááœá²á á¬áž 1 ááᯠááŒááºáááºáá±ážá¡ááºááá¯ááºáá«áááºá ááœá²á á¬ážá áá¯á¶ážááŸá¯á¶ážááŸá¯ááŸáá·áº ááŒááºáááºááá°ááŒááºážáá±áá¬ááẠáááºáá»áŸááẠáá±á¬ááºážá áœá¬ ááŸááºáááºáá±áá«á á±á ááŒááºáááºá áááºáá»áááºááœáẠáá¯á¶áá°áá°ážáá¬ážáá±á¬ áááºážá á®á á¬ááá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠá áœáá·áºáá áºáá«áááºá áá±á¬ááºáááºááœá²ááá¯ážáá»áá¯ážááœá± ááŒá áºáá¬ááá¯ááºáá¬ááŒá±á¬áá·áº ááááá¬ážááá¯á· á¡áá±ážááŒá®ážáá«áááºá áá®áááºáá±á¬ááºááŸá¯ááœá±ááᯠáááŒá¬áááºááŸá¬ ááŒáá·áºáá«áááºá ááá¯á·ááŒá±á¬áá·áº Broker 1 ááẠááá¯á¡áá« á¡á á¯á¡áá±ážá á¡ááœá²á·áááºá¡ááŒá Ạáá áºáááºááŒá áºáá¬ááŒá®áž á¡á á¯á¡ááœá²á·ááẠáá°áá«ááá»á¬ážááᯠááá¯ááºáá¬ááẠááŒáá¯ážá á¬ážáá±á¬ááŒá±á¬áá·áº Broker 1 ááœáẠááŸááºáá»á¬ážááᯠáááºáá®ážáá±ážáá«áááºá
á€ááá á¹á ááœááºá Broker 1 á áá¯á¶ážááŸá¯á¶ážááŸá¯ááẠáá±áá¬áá²á·ááá¯á·ááẠááŒá®ážááœá¬ážáááºá ááá¯á·ááŒá±á¬áá·áº ááŒá±ážáá¯á¶ááŒááºáá¬ážáá±á¬ Queue B ááẠáá¯á¶ážááá¯á¶ážááŸá¯á¶ážááœá¬ážáá«áááºá
ááááºážá 6. ááœá²á
á¬áž 1 ááẠáááºáá±á¬ááºááŸá¯ááá¯á· ááŒááºááœá¬ážáááºá
Broker 3 ááẠá¡áœááºááá¯ááºážááœáẠááŒááºáááºáá±á¬ááºááŸááá±ááŒá®ááŒá áºáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·á HA áá°áá«ááá»á¬ážááᯠáá»á±áááºá á±ááẠA ááŸáá·áº B ááẠá á®áááºážáá¬ážáá±á¬ááŒá±ážáá¯á¶áá»á¬ážááᯠááŒááºáááºáááŸááááºááŒá áºáááºá ááá¯áá°áá¬áž áááºááááºážá á®áá»á¬ážá¡á¬ážáá¯á¶ážááẠnode áá áºáá¯ááœááºááŸááá±ááŒá®ááŒá áºáááºá áááºážááẠá á¶ááŒááá¯ááºáá«á node áá»á¬ážááŒá¬ážááœááºááẠááŒáá·áºáá±ááŒááºážááẠááá¯áá±á¬ááºážáá«áááºá áá¶ááá±á¬ááºážá áœá¬ááŒáá·áºá á€áá±áá¬ááœáẠáá¬á áá¬áá»á¬ážááᯠááŒááºáááºáá»áááºááŸááááºá¡ááœáẠááœá±ážáá»ááºá áá¬áá»á¬ážá áœá¬áááŸááá«á áááºážá á®ááá¬áž áááºáá°ááŒá¯ááŒááºážááᯠáŠážá áœá¬ááŒáá·áºááŸá¯ááẠááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº áá±á¬ááºááá¯ááºážááœáẠá€ááŒá¿áá¬ááᯠááŒááºáááºáááºááŒáá«áááºá
ááááºážá 7. ááœá²á
á¬áž 3 ááẠáááºáá±á¬ááºááŸá¯ááá¯á· ááŒááºááœá¬ážáááºá node áá
áºáá¯ááŸá áááºááááºážá
á®áá»á¬ážá¡á¬ážáá¯á¶ážá
ááá¯á·ááŒá±á¬áá·áº ááá¯ááœáẠááŸááºáá»á¬ážááẠá¡áááºáááºááŸáá·áº á¡ááŸá¬ážáá¶ááá¯ááºáááºááᯠáááºáá²á·ááá¯á· áá¶á·ááá¯ážáá±ážáááºááᯠá áááºáá°ážááŸáááá·áºáááºá áááºážááẠnode áá áºáá¯áááºážáá»áá¯á·ááœááºážááŸá¯ááŒá áºá ááºááœááºáááŸáááá¯ááºááŸá¯ááá¯áá±áá»á¬á á±ááŒá®ážáá±áá¬áá¯á¶ážááŸá¯á¶ážááŸá¯ááŸáá¬ááœááºáá±ážáááºá áá«áá±ááá·áº áá»áœááºáá±á¬áºááá¯á· áááŒá®ážáá±ážáá«áá°ážá áá¬ááŒá áºááá¯á·áá²ááá¯áá±á¬á· áááºááœá±á·ááŸá¬á ááá¯ááŸá¯ááºááœá±ážáá«áááºá
áááºáá°
ááŸááºá¡áá áºáá áºáᯠáááºáá®ážáá±á¬á¡áá«á áááºáá±á·áá»áºá¡áá áºáá»á¬ážá¡á¬ážáá¯á¶ážááẠá€ááŒá±ážáá¯á¶ááŸáá·áº á¡ááŒá¬ážáááºááá·áºá¡áá¬á¡ááœááºáááᯠá¡ááŒá²áááºážáá¯á¶áá°ááœá¬ážáá±áááá·áºáááºá áá¬á áá¬áááºážá á®ááŸá ááŸáááŒá®ážáá¬ážáá±áá¬á¡ááœááºá áá¬á áá¬á ááŒá®ážááŒáá·áºá á¯á¶áá±á¬áááá¹áá°ááŒá áºáá¬ááá·áº ááŸááºá¡áá áºáá áºáá¯ááá¯á· áá»áœááºá¯ááºááá¯á·á áááºážááᯠáá°ážáá°ááá¯ááºáá«áááºá ááŸáááŒá®ážáá¬ážá á¬áá»á¬ážááᯠáá¯á¶áá°ááœá¬ážááŒááºážáááŒá¯ááẠááœá±ážáá»ááºááá¯ááºááŒá®áž áááºááááºážá á®ááŸáá·áº ááŸááºá¡áá áºááᯠá¡áá»áááºááŸáá·áºá¡áá»áŸ áá¯á¶á ááºážááá¯ááºá á±áᬠá¡ááŒá®ážááá¯ááºážááá¯á· áááºáá±á·ááºá»á¡áá áºáá»á¬ážáá±á¬ááºááŸááá¬ááŒá®áž ááŸáááŒá®ážáá¬ážáááºáá±á·áá»áºáá»á¬ážááẠáááºááááºážá á®ááŠážáá±á«ááºážá០ááœááºááœá¬ááœá¬ážáááºááŒá áºáááºá
á€áááºáá°áá°ážááŒááºážááᯠá¡ááá¯á¡áá»á±á¬áẠááá¯á·ááá¯áẠááá¯ááºááá¯ááºáá¯ááºáá±á¬ááºááŒá®áž áááºážá á®ááŒááºážáá°áá«áááᯠá¡áá¯á¶ážááŒá¯á á á®áá¶ááá·áºááœá²áá«áááºá á¥ááá¬áá áºáá¯ááá¯ááŒáá·áºáá¡á±á¬ááºá
áá»áœááºá¯ááºááá¯á·ááœáẠáá¯á¶áá°áá°ážáá¬ážáá±á¬ áááºážá á®ááŸá áºáá¯ááŸááááºá Queue A ááᯠá¡ááá¯á¡áá»á±á¬áẠá áá·áºááºáá¯ááºáá¬ážááŒá®áž Queue B ááᯠááá¯ááºááá¯áẠá áá·áºááºáá¯ááºáá¬ážáááºá á á®áááºážááŸá áºáá¯á áá¯á¶ážááœáẠáááºáá±á·áá»áºáááºá á±á¬ááºáá«ááŸááááºá
ááááºážá 8. ááá°áá®áá±á¬ áááºáá°ááŒá¯ááŒááºážáá¯ááºáá»á¬ážááŒáá·áº áááºážá
á®ááŸá
áºáá¯
ááᯠáá»áœááºá¯ááºááá¯á·ááẠBroker 3 ááᯠáá¯á¶ážááŸá¯á¶ážáá±áá«áááºá
ááááºážá 9. ááœá²á
á¬áž 3 áá»ááœá¬ážáááºá
ááœá²á á¬áž 3 ááẠáááºáá±á¬ááºááŸá¯ááá¯á· ááŒááºááœá¬ážáááºá á¡á á¯á¡ááœá²á·ááẠnode á¡áá áºááŸá áááºážá á®áá áºáá¯á á®á¡ááœáẠááŸááºáá áºáá»ááºááᯠáááºáá®ážááŒá®áž Queue A á¡áá áºááᯠáá¬á áá¬ááŸáá·áº á¡ááá¯á¡áá»á±á¬áẠáááºáá°ááŒá¯áá«áááºá ááá¯á·áá±á¬áº Queue B á¡áá áºáááŸááºááẠááá¬ááŒá áºáá±áááºá á€áááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááœáẠQueue A ááœáẠá¡ááŒáá·áºá¡á áááºáá±ááŒá®áž áááºááŸá Queue B áááºáá±á·áá»áºáá»á¬ážá¡ááœáẠááŸááºáá áºáá»ááºáá¬ááŸááááºá
ááááºážá 10. Queue A áááŒá±ážáá¯á¶ááŸááºá¡áá
áºááẠááŸáááŒá®ážáá¬ážáááºáá±á·áá»áºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáááºáá¶áááŸááá±á¬áºáááºáž Queue B áááŒá±ážáá¯á¶ááŒááºá¡áá
áºááẠáááŸááá«á
áááºážá á®ááŒááºážááŸá áºáá¯áá¯á¶ážááœáẠáá±á¬ááºáááºáááºáá±á·áá»áºáááºá á±á¬áẠáá±á¬ááºáá¬áááºá ááá¯á·áá±á¬áẠBroker 2 áá»ááºááœá¬ážááŒá®áž Queue A ááẠBroker 1 ááœááºááŸááá±á¬ ááŸá±ážá¡áá»áá¯á¶ážááŸááºááá¯á· ááŒááºááœá¬ážáá«áááºá áá»ááºááœá¬ážááá·áºá¡áá« áá±áá¬áá¯á¶ážááŸá¯á¶ážááŸá¯áááŸááá«á Queue B ááœááºá áá¬á áá¬ááœáẠáááºáá±á·áá»áº ááŸá áºáááºááŸáááŒá®áž ááŸááºáá²ááœáẠáááºá á±á¬ááºáᬠááŸááááºá
ááááºážá 11. Queue A ááẠáááºáá±á·áá»áºáá»á¬áž ááá¯á¶ážááŸá¯á¶ážáá² Broker 1 ááá¯á· ááŒááºááœá¬ážáá«áááºá
á á®áááºážááŸá áºáá¯áá¯á¶ážááœáẠáá±á¬ááºááẠáááºáá±á·áá»áºáááºá á±á¬áẠáá±á¬ááºááŸááá¬áááºá ááᯠBroker 1 áá»ááºááœá¬ážáá«áááºá Queue A ááẠáááºáá±á·áá»áºáá»á¬áž ááá¯á¶ážááŸá¯á¶ážáá² ááŸááºááá¯á· á¡ááœááºááá° ááŒá±á¬ááºážááœá¬ážáá«áááºá ááá¯á·áá±á¬áºáááºáž Queue B ááœáẠááŒá¿áá¬áá»á¬áž ááŸááá±áááºá á€á¡áá»áááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠáááá¯ááºááŸá¯ ááá¯á·ááá¯áẠáá®ááœááºááŸá¯ááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬áẠáá¯ááºáá±á¬ááºááá¯ááºáááºá
áá»áœááºá¯ááºááá¯á·ááẠá¡áá»á¬ážáá°ááŸá¬ á¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºážááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬áẠáá¯ááºáá±á¬ááºááá¯áá«á áá°áá«áááᯠáá»ááŸááºáá«á ha-promote-on-failure ááœááºáááºáááºááá·áºáááºá á¡ááŒá². áááºážááẠáá°áááºážáááºááá¯ážááŒá áºáá±á¬ááŒá±á¬áá·áº áááºááẠáá°áá«áááᯠáá¯á¶ážáááááºááŸááºááá¯ááºáá«á á€ááá á¹á ááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áááá¡á¬ážááŒáá·áº áá áºááŒáá¯ááºáááºáááºážááá¯ááºáá±á¬ááŸááºáá»á¬ážááœáẠáá»ááŸá¯á¶ážááŸá¯áá»á¬ážááᯠááœáá·áºááŒá¯áá«áááºá áááºážááẠáááºáá±á·áá»áºáá»á¬ážááᯠáá¯á¶ážááŸá¯á¶ážááœá¬ážá á±áááá·áºáááºá ááá¯á·áá±á¬áº áááºážá á®ááẠáááºááá¯ááºá áá±ážááá¯ááºáá±áŠážáááºááŒá áºáááºá
ááááºážá 12. Queue A ááẠáááºáá±á·áá»áºáá»á¬áž ááá¯á¶ážááŸá¯á¶ážáá² Broker 3 ááá¯á· ááŒááºáááºáá±á¬ááºááŸáááœá¬ážáá«áááºá Queue B ááẠá
á¬ááᯠáááºá
á±á¬áẠáá¯á¶ážááŸá¯á¶ážááœá¬ážáááŒáá·áº Broker 3 ááá¯á· ááŒááºááŸáá·áºáááºá
áááºáááºááá¯ááºáááºá ha-promote-on-failure
á¡áááá¹áá«ááºááá¯á· when-synced
. á€ááá
á¹á
ááœááºá ááŸááºááá¯á·ááŒááºááŸáá·áºááá·áºá¡á
á¬ážá Broker 1 ááẠáááºážááá±áá¬á¡áœááºááá¯ááºážáá¯ááºááá¯á· ááŒááºáááºáá±á¬ááºááŸááááºá¡áá áááºážá
á®á
á±á¬áá·áºááá¯ááºážáá«áááºá ááŒááºáá¬ááŒá®ážáá±á¬ááºá áááºááááºážá
á®ááẠáá±áá¬áá¯á¶ážááŸá¯á¶ážááŒááºážáááŸááá² Broker 1 ááœáẠááŒááºáááºáá±á¬ááºááŸáááœá¬ážáá«áááºá áá±áá¬áá¯á¶ááŒá¯á¶áá±ážá¡ááœáẠáááŸáááá¯ááºááŸá¯ááᯠá
áá±ážáááºá ááá¯á·áá±á¬áº áááºážááẠáá±áá¬áá¯á¶ážááŸá¯á¶ážááŸá¯ááá¯ááẠááŒá
áºáá±á«áºá
á±ááá¯ááºááá·áº á¡áá¹ááá¬ááºááŸááá±á¬ áá¯ááºáá
áºáá¯ááŒá
áºááŒá®áž áááŒá¬áá® áá»áœááºá¯ááºááá¯á·ááŒáá·áºááŸá¯áá«áááºá
ááááºážá 13. Broker 1 ááá¯áá¯á¶ážááŸá¯á¶ážááŒá®ážáá±á¬áẠQueue B ááááá¯ááºáá«á
âá¡ááá¯á¡áá»á±á¬áẠáááºáá°ááŒá¯ááŒááºážááᯠáááºáá±á¬á·á០ááá¯á¶ážáá¬á ááá¯áá±á¬ááºážááá¬ážâ ááá¯á· áá±ážááá¯ááºáá«áááºá á¡ááŒá±ááŸá¬ synchronization ááẠblocking operation ááŒá áºáááºá áááºáá°ááŒá¯ááŒááºážááœááºá áááºááááºážá á®ááẠáááºááŸá¯ááŒááºáž ááá¯á·ááá¯áẠáá±ážááŒááºážááá¯ááºáᬠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºáááºááá¯ááºáá±á
á¥ááá¬áá áºáá¯ááá¯ááŒáá·áºáá¡á±á¬ááºá á¡áᯠáá»áœááºáá±á¬áºááá¯á· áááºážá á®áá±áᬠáá±á¬áºáá±á¬áºááŒá¬áá±ááŒá®á áá®ááá¯áá»áá¯áž á¡ááœááºáá±á¬ááºá¡á±á¬áẠáááºááᯠááŒá®ážááœá¬ážááá¯ááºááá²á á¡ááŒá±á¬ááºážáááºážáá»á¬ážá áœá¬á¡ááœááº-
- áááºážá á®ááŒááºážááᯠáááºááŒáœá áœá¬ á¡áá¯á¶ážáááŒá¯áá«á
- áááºážááá¯á·ááẠááŒááºááŸá¯ááºážááŒáá·áºáááºážá á®áá»á¬ážááŒá áºááŒá®áž ááá¯á¡áá»áááºááœáẠá á¬ážáá¯á¶ážáá°áá»á¬áž ááŸá±ážááœá±ážáá±áá«áááºá
- áááºážááẠááŒááºááŸá¯ááºážááŒáá·áºáááºážá á®ááŸá¯áá»á¬ážá áá»áœááºááœááºážáá»ááºáá áºáá¯ááŸááá²á·ááŒá®áž á á¬ážáá¯á¶ážáá°áá»á¬ážá ááá¯ááºáááºážáá±ááŒáááºá
ááááºážá 14. ááá°áá®áá±á¬ áááºáá°ááŒá¯ááŸá¯áá¯ááºáá»á¬ážááŒáá·áº ááŒá®ážáá¬ážáá±á¬áááºážá
á®ááŸá
áºáá¯
á¡áᯠBroker 3 á áá»ááœá¬ážáááºá
ááááºážá 15. ááœá²á
á¬áž 3 ááẠáááºážá
á®ááá¯ááºážááœáẠáá¬á
áá¬áá
áºáá¯á¶ááŸáá·áº ááŸááºáá
áºáá»ááºáá»ááºáá¬ážáááºá
Broker 3 ááẠá¡áœááºááá¯ááºážááœáẠááŒááºáááºáá±á¬ááºááŸááá¬ááŒá®áž ááŸááºá¡áá áºáá»á¬ážááᯠáááºáá®ážáá¬ážáááºá Main Queue A ááẠááŸáááŒá®ážáá¬ážá á¬áá»á¬ážááᯠááŸááºá¡áá áºááá¯á· áá¯á¶áá°áá°ážááŒááºážá áááºááŒá®áž á€áá¬áá¡ááœááºáž Queue ááááá¯ááºáá«á áá±áá¬ááᯠáá¯á¶áá°ááœá¬ážááẠááŸá áºáá¬áá®ááŒá¬ááŒá®áž á€áááºážá á®á¡ááœáẠááŸá áºáá¬áá®ááŒá¬ áááºáá¬ážáá²á·ááááºá
ááá¯á·áá±á¬áºáááºáž Queue B ááẠáá¬ááá áºáá»áŸá±á¬ááºáá¯á¶ážááœáẠááŸááá±áá±ážáááºá áá¯á¶ážá áœá²ááá¯ááºááŸá¯ á¡ááœáẠáá°áááẠááá¯á¡ááºáá»ááºá¡áá»áá¯á·ááᯠá áá±ážáá²á·áááºá
ááááºážá 16. á
áá·áºááºáá¯ááºáá±á
ááºááœáẠáááºážá
á®ááŒááºážááᯠááááŸáááá¯ááºáá«á
ááŸá áºáá¬áá®ááŒá¬ááŒá®ážáá±á¬ááºá Queue A áááºážáááŸáááá¯ááºááŒá®áž á á¬ááŒááºáá±ážááŒááºážáá»á¬ážááᯠá áááºáááºáá¶ááá¯ááºáá«áááºá
ááœááºážáá¶
áááºáá°ááŒá¯ááŒááºážááœáẠá€ááááºááá¯á·ááŒááºážá¡ááŒá¯á¡áá°ááẠá¡ááœááºááŒá®ážáá¬ážáá±á¬ áááºážá
á®áá»á¬ážááŒáá·áº á¡á
á¯á¡áá±ážáá»á¬ážááᯠá¡ááºááááºáá¯ááºááẠáááºáá²á
á±áááºá áá
áºáá»áááºáá»áááºááœááºá áá¬áá¬ááᯠá¡ááá·áºááŒáŸáá·áºáááºáá±áá»áááºááœáẠáá¬á
áᬠnode ááᯠááŒááºáááºá
áááºááẠááá¯á¡ááºáááºá ááá¯ááá¯áááºááŸá¬ ááŸááºáá
áºáá»ááºááá¯á· ááŒá±á¬ááºážááŒááºáž ááá¯á·ááá¯áẠáá¬áá¬ááᯠá¡ááá·áºááŒáŸáá·áºáááºáá±áá»áááºááœáẠáááºážá
á®ááŒááºážááᯠááááºááŒááºážááŒá
áºá
á±ááá¯ááºáááºá á¡áááºá áá»áœááºá¯ááºááá¯á·ááẠáá°ážááŒá±á¬ááºážááẠááœá±ážáá»ááºáá«áá ááŸááºáá»á¬ážááᯠáááºáá°ááŒá¯ááŒááºážáááŸááá«á áááºáá±á·áá»áºáá»á¬áž áá¯á¶ážááŸá¯á¶ážáá«áááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá ááœá²á
á¬ážááŒááºáá±á¬ááºáá»áááºááœááºá áá
áºááŒáá¯ááºáááºáááºážááá¯ááºáá±á¬ááŸááºáá
áºáá¯ááá¯á· áá»ááºááœááºááŒááºážááᯠáá¯ááºáá±á¬ááºáááºááá¯ááºáá«á ááá¯ááá¯áááºááŸá¬ ááœá²á
á¬ážááŒááºáá¬áááºááŸáá·áºáááŒáá¯ááºááẠáá»áœááºá¯ááºááá¯á·ááẠáááºááá·áºáááºáá±á·áá»áºá០ááá¯á¶ážááŸá¯á¶ážáá«á áá
áºáá¯áááºážáá±á¬ áá»ááºá
á®ážááŸá¯ááẠááá¯ážááá¯ážáááºážá
á®ááŒááºážáááºááŒá
áºáááºá ááœá²á
á¬ážáá
áºáŠážááᯠá¡áááºááŒááºááœá¬ážáá±á¬á¡áá« á¡ááŒá¯á¡áá°ááá¯ááºáᬠá
ááºážáá»ááºážáá»á¬ážááᯠáá°áá«áááŒáá·áº áááºááŸááºáááºá ha-promote-on-shutdown
. áááºááá¯ážááŸá
áºáá¯áá²á០áá
áºáá¯ááᯠáááºáááºááŸááºááá¯ááºáááº-
always
= áááºáá°ááá»áá±á¬ ááŸááºáá»á¬ážáá®ááá¯á· áá°ážááŒá±á¬ááºážááŒááºážááᯠááœáá·áºáá¬ážáááºáwhen-synced
= áá áºááŒáá¯ááºáááºážáá¯ááºáá¬ážááá·áº ááŸááºáá áºáá»ááºááá¯á· áá°ážááŒá±á¬ááºážááŒááºážáá¬á ááá¯ááºáá«á áááºážá á®ááẠáááºáááá á á¬ááá±ážááá¯ááºááŒá áºááœá¬ážáááºá ááœá²á á¬ážááŒááºáá¬áááºááŸáá·áºáááŒáá¯ááºááẠáááºážá á®ááẠáááºáá±á¬ááºááŸá¯ááá¯á· ááŒááºááœá¬ážáááºá
áá áºáááºážááá¯ááºáá áºáááºážá áááºážá á®ááŒá®ážáá»á¬ážááŒáá·áº áá±áá¬áá¯á¶ážááŸá¯á¶ážááŸá¯ááŸáá·áº ááááŸáááá¯ááºááŸá¯ááŒá¬ážááœáẠáááºááœá±ážáá»ááºááááºááŒá áºáááºá
áááŸáááá¯ááºááá·áºá¡áá« áá±áá¬áá¯á¶ááŒá¯á¶áá±ážááᯠááá¯ááá¯áá±á¬ááºážááœááºá á±áááºá
áá¯á¶ážááŒááºáá»ááºááá»áá® á ááºážá á¬ážáááá·áº áá±á¬ááºáááºááŸá¯ááºááœá±ážááŸá¯áá áºáá¯ááŸááá±ážáááºá á¡ááá¯á¡áá»á±á¬áẠáááºáá°ááŒá¯ááŒááºážááẠáááºáá±áá±á¬á¡ááœáẠááá¯áá±á¬ááºážáá±á¬áºáááºážá áááºážááẠáá±áá¬áá¯á¶ááŒá¯á¶áá±ážááᯠáááºááá¯á·á¡áá»áá¯ážáááºáá±á¬ááºááááºážá áá¯ááºáá«áááºá ááá¯ááá¯áá±á¬ááºážááœááºáá±á¬áááºáá°ááŸá¯ááŒáá·áº RabbitMQ ááẠááŸáááŒá®ážáá¬ážáááºáá±á·áá»áºáá»á¬ážááᯠáá¯á¶ážááŸá¯á¶ážááá¯ááºááŒá±áááºážáá±á¬áºáááºáž áá¯ááºáá±áá°áá»á¬ážáá¶á០áááºáá±á·áá»áºá¡áá áºáá»á¬ážáá±á¬á
á€áá±áá¬ááœáẠá¡á±á¬ááºáá«ááá¯á·ááᯠááá·áºááœááºážá ááºážá á¬ážááẠááá¯á¡ááºáá«áááºá
- áá¯ááºáá±áá°ááẠá¡ááŸá¬ážáá áºáá¯ááᯠááá¯ážááá¯ážááŒááºááŒááŒá®áž á¡áááºá á®ážááŒá±á¬ááºážáááºáá±á¬ááºááŸá¯ ááá¯á·ááá¯áẠá¡áá¯á¶ážááŒá¯áá°ááᯠáá±á¬ááºá០áááºá ááºážááŒáá·áºááá¯ááºáá«ááá¬ážá
- áá¯ááºáá±áá°ááẠáááºáá±á·áá»áºááᯠá ááºááœááºáž ááá¯á·ááá¯áẠáá±á¬ááºá០áááºá ááºážááŒáá·áºááẠáá±áá¬áá±á·á áºááœáẠááááºážáááºážááá¯ááºáá«ááá¬ážá
áá¯ááºáá±áá°ááẠáááºáá±á·áá»áºááá¯áᬠá áœáá·áºáá áºááá¯ááºáá«áá á¡ááŸááºááááºááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºážááᯠááŒáŸáá·áºáááºááŒááºážááẠáá±áá¬áá¯á¶ááŒá¯á¶áá±ážááá¯áááºáž ááá¯ááá¯áá±á¬ááºážááœááºá á±áá«áááºá
ááá¯á·ááŒá±á¬áá·áº áá»áááºááœááºáá»áŸá¬ááᯠááŸá¬ááááºááŒá áºááŒá®áž á¡ááŒá±ááẠáá®ážááŒá¬ážá¡ááŒá±á¡áá±áá±á«áº áá°áááºáá«áááºá
ha-promote-on-failure=when-synced ááŒá¿áá¬áá»á¬áž
á áááºáá°áž ha-promote-on-failure= á áá·áºááºáá¯ááºáá¬ážáááºá áá»áœááºá¯ááºááá¯á·ááẠáá áºááŒáá¯ááºáááºáááºážááá¯ááºáá±á¬ ááŸááºááá¯á·ááŒá±á¬ááºážááŒááºážááᯠáá¬ážáá®ážááŒá®áž áá±áá¬áá¯á¶ážááŸá¯á¶ážááŸá¯ááᯠááŸá±á¬ááºááŸá¬ážááá¯ááºá á±áááºááŒá áºáááºá áááºážá á®ááẠááááºá ááá¯á·ááá¯áẠá á¬áá±ážááááá«á áááºážá¡á á¬ážá áá»áœááºá¯ááºááá¯á·ááẠáá»ááºá á®ážááœá¬ážáá±á¬ ááœá²á á¬ážááᯠáááºážááá±áá¬ááᯠáááá¯á¡ááá¯ááºáž ááŒááºáááºááá°ááẠááŒáá¯ážá á¬ážááŒá®áž áááºážááẠáá±áá¬áá¯á¶ážááŸá¯á¶ážááŸá¯áááŸááá² áá¬á áá¬áá áºáŠážá¡ááŒá ẠááŒááºáááºáá¯ááºáá±á¬ááºááá¯ááºá á±ááẠááŒáá¯ážá á¬ážáá«áááºá
áá«áá±ááá·áº (áá«áááŒá®ážáá±ááá·áº) ááœá²á á¬ážá áá°á·áá±áá¬ááœá± áá»á±á¬ááºááœá¬ážáááºá áá«ááá¯á·ááŸá¬ ááŒá¿áá¬ááŒá®ážáá áºáá¯ááŸááááºá áááºážá á®áᬠáá»á±á¬ááºááœá¬ážáááºá áá±áá¬á¡á¬ážáá¯á¶áž áá»ááºááœá¬ážáá«ááŒá®á ááá·áºááœáẠá¡ááá áááºážá á®áá±áá±á¬ ááŸááºáá»ááºáá»á¬áž ááŸááá»áŸááºááẠááá¯ááŸááºáá»á¬ážááᯠááœáŸáá·áºáá áºáááºá
á¡áááºáá° node áá áºáá¯ááᯠááŒááºáááºááá·áºááœááºážáááºá áá¯á¶ážááŸá¯á¶ážááœá¬ážáá±á¬ node ááᯠáá±á·áá áºááẠá¡á á¯á¡ááœá²á·á¡á¬áž áá»áœááºá¯ááºááá¯á· ááŒá±á¬ááẠ(á¡áááá·áºáá±á¬áºááŒáá·áº rabbitmqctl áá±á·_cluster_node) áá°áá®áá±á¬ hostname ááŒáá·áº ááœá²á á¬ážá¡áá áºááᯠá áááºáá«á cluster ááẠáá»á±á¬ááºáá¯á¶ážááœá¬ážáá±á¬ node ááᯠááŸááºáááá±áá»áááºááœááºá áááºážááẠáááºážá á®áá±á¬ááºážááŸáá·áº áááºáá°ááá»áá±á¬ ááŸááºáá»á¬ážááᯠááŸááºáááááºá ááááá²á· node áá áºáá¯ááᯠáá±á·ááẠá¡á á¯á¡ááœá²á·áá áºáá¯á¡á¬áž ááŒá±á¬áá±á¬á¡áá«á ááá¯áááºážá á®ááá¯áááºáž áá±á·ááœá¬ážáá«áááºá á¡áá¯áá±á¬á· á¡á²áá«ááᯠááŒááºááŒá®áž ááŒá±ááŒá¬ááááºá áá»áœááºá¯ááºááá¯á·ááœáẠáá±áá¬áá áºá áááºáá áºááá¯ááºážáá«ááŸááá±á¬ ááŸááºáá»á¬ážáá«ááŸááá±á¬áºáááºáž áá±áá¬á¡á¬ážáá¯á¶áž áá¯á¶ážááŸá¯á¶ážááœá¬ážáá²á·áááºá áá áºááŒáá¯ááºáááºáááºážááá¯ááºáá±á¬ááŸááºááá¯á·ááŒá±á¬ááºážááŒááºážááẠááá¯áá±á¬ááºážáááá·áºáááºá
ááá¯á·ááŒá±á¬áá·áº, manual synchronization (ááŸáá·áº synchronize áá»ááºááœááº) ááŸáá·áºá¡áá°áá±á«ááºážá
áẠha-promote-on-failure=when-synced
áá»áœááºáá±á¬á·áºá¡ááŒááºá¡ááá±á¬á· áá±á¬áºáá±á¬áºáá±áž á¡áá¹ááá¬ááºáá»á¬ážáá«áááºá áá±áá¬áá¯á¶ááŒá¯á¶áá±ážá¡ááœáẠá€ááœá±ážáá»ááºááŸá¯ááẠááŸáááŒá±á¬ááºáž Docs áááŒá±á¬áá±á¬áºáááºáž áááºážááẠááŸá
áºáááºáá±á¬áá¬ážááŒá
áºáááºá
Master rebalancing
áááááŒá¯áá¬ážááá·áºá¡ááá¯ááºážá áá»áœááºá¯ááºááá¯á·ááẠnode áá áºáᯠááá¯á·ááá¯áẠá¡áá»á¬ážá¡ááŒá¬ážááœáẠáá¬á áá¬á¡á¬ážáá¯á¶ážááᯠá á¯á ááºážááŸá¯ááŒá¿áá¬ááá¯á· ááŒááºááœá¬ážáá«áááºá ááŸááá·áºáá±áá±á¬ á¡á á¯á¡áá±áž á¡ááºááááºááŒá±á¬áá·áºááẠáááºážááẠááŒá áºáá±á«áºáá¬ááá¯ááºáááºá áá¯á¶ážáá¯-node á¡á á¯á¡áá±ážááœááºá áá¬á áá¬áááºážá á®áá»á¬ážá¡á¬ážáá¯á¶ážááẠnode áá áºáᯠááá¯á·ááá¯áẠááŸá áºáá¯ááœáẠá á¯áá¯á¶áá±áááá·áºáááºá
Rebalancing masters áá»á¬ážááẠá¡ááŒá±á¬ááºážáááºážááŸá áºáá¯ááŒá±á¬áá·áº ááŒá¿áá¬ááŸáááá¯ááºáááº-
- ááŒááºáááºáá»áááºááŸáááẠáá±á¬ááºážááœááºáá±á¬áááááá¬áá»á¬áž áááŸááá«á
- áááºážá á®ááŒááºážááᯠáááºáá°ááŒá¯ááŒááºáž
ááŒááºáááºáá»áááºááŸáááẠááááá¡ááœá²á·á¡á
ááºážáá
áºáᯠááŸááá«áááºá
HA áá°áá«ááá»á¬ážááŸáá
áºááá·áº áááºááááºážá
á®ááᯠááœáŸá±á·ááẠáá±á¬ááºáááºááŸáá·áºááœááºáá
áºáá¯ááŸááááºá áááºá
áœá²á
á¬á¡á¯ááºááœááºáá±á¬áºááŒáá¬ážáááºá
- áááºááŸá HA áá°áá«áááẠááá¯ááá¯áŠážá á¬ážáá±ážáá±á¬ áá¬áá®áá°áá«áááᯠá¡áá¯á¶ážááŒá¯á ááŸááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáááºááŸá¬ážáááºá
- node áá¯ááºááᯠá¡áá¯á¶ážááŒá¯ááẠáá¬áá® HA áá±á«áºáá á®ááᯠááŒá±á¬ááºážááŒá®ážá áá¬á áá¬áááºážá á®ááᯠááœáŸá²ááŒá±á¬ááºážááá·áºááá·áº áá¯ááºááᯠáááºááŸááºááŒááºážá
- push migration á¡ááœáẠáááºážá á®ááá¬ážááᯠá áá·áºááºáá¯ááºáááºá
- ááœáŸá±á·ááŒá±á¬ááºážááŒááºážááŒá®ážáá«áá áá¬áá®áá°áá«áááᯠáá»ááºáá«á áááŠáž HA áá°áá«áááẠá¡áááºáááºáááºááŒá áºááŒá®áž ááá¯á¡ááºáá±á¬ ááŸááºáá»ááºá¡áá±á¡ááœááºááᯠáááºáá®ážáá¬ážáááºá
á¡á¬ážáááºážáá»ááºááŸá¬ ááá·áºááœáẠááŒá®ážáá¬ážáá±á¬áááºážá á®ááŒááºáž ááá¯á·ááá¯áẠáááºážáá»ááºáá±á¬ áááºáá±áá±á¬ááá¯á¡ááºáá»ááºáá»á¬ážááŸááá»áŸáẠá€áááºážáááºážááẠá¡áá¯ááºáááŒá áºááá¯ááºáá«á
ááᯠRabbitMQ á¡á á¯á¡áá±ážáá»á¬ážááẠnetwork partitions áá»á¬ážááŸáá·áº áááºááá¯á·á¡áá¯ááºáá¯ááºáááºááᯠááŒáá·áºááŒáá«á áá¯á·á
áá»áááºáááºááŸá¯áá»á±á¬ááºáá¯á¶ážááŒááºážá
ááŒáá·áºáá±ááá·áºá áá áºá áá¯á¶ááŸááºáá»á¬ážááᯠááœááºáááºááá·áºááºáá»á¬ážááŒáá·áº áá»áááºáááºáá¬ážááŒá®áž ááœááºáááºááá·áºááºáá»á¬áž áá»áááºáááºááá¯ááºáᬠá¡áááºá¡ááœááºááŒááºááœá¬ážáááºááŒá áºáááºá ááŒááºáá±á¬ááºááŸá¯á¡ááŒáááºáá±ááẠáá±áááœááºáž á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ ááá¯á·ááá¯áẠááœá±ážáá»ááºáá¬ážáá±á¬ cloud á áá¯á¶ááŒááºá áááºáá»áááŸá¯á¡áá±á«áº áá°áááºáááºá áááºááá¯á·áááºááá¯á á±áá¬áá° ááŒáá·áºáá±ááŸá¯á áá áºáá»á¬ážááẠáááºážááá¯á·ááᯠááááºážáá»á±á¬ááºážááá¯ááºááááºááŒá áºáááºá áá áºááẠáá»áœááºá¯ááºááá¯á·ááœáẠáááŸáááá¯ááºááŸá¯ááŸáá·áº áá®ááœááºááŸá¯á¡ááŒá¬áž ááœá±ážáá»ááºá áá¬áá áºáá¯ááŸááááºá ááá¯á·á¡ááŒáẠááááºážáá±á¬ááºážááŸá¬ RabbitMQ ááẠááœá±ážáá»ááºá áá¬ááŸá áºáá¯áá¯á¶ážááᯠáá±ážáá±á¬ááºááẠ(áá áºáá»áááºáááºážááá¯ááº)á
RabbitMQ ááŒáá·áº áá»áœááºá¯ááºááá¯á·ááœáẠá¡áááááœá±ážáá»ááºá áá¬ááŸá áºáá¯ááŸááááºá
- áá¯áá¹áá ááá¯ááºážááŒá¬ážááŒááºáž (split-bin) ááᯠááœáá·áºááŒá¯áá«á áááºážááẠáááŸáááá¯ááºááŸá¯ááᯠáá±áá»á¬á á±áá±á¬áºáááºáž áá±áá¬áá¯á¶ážááŸá¯á¶ážááŸá¯ ááŒá áºá á±ááá¯ááºáááºá
- áá¯áá¹ááááœá²ááŒá¬ážááŸá¯ááᯠááááºáá«á client áá»á¬áž á¡á á¯á¡áá±ážááá¯á· áá»áááºáááºáá¯á¶áá±á«áºáá°áááºá áááŸáááá¯ááºááŸá¯áá±ááᯠáá¯á¶ážááŸá¯á¶ážááœá¬ážááá¯ááºáááºá ááŸá áºáá¯-node á¡á á¯á¡áá±ážááœáẠááŒá®ážááŒáá·áºá á¯á¶áá±á¬ ááááŸáááá¯ááºááŸá¯ááá¯áááºáž ááŒá áºáá±á«áºá á±ááá¯ááºáááºá
ááá¯á·áá±á¬áº áá¯áá¹áááá±á ááœá²ááŒá¬ážááŒááºážááá¯áááºááŸá¬ á¡áááºáááºážá ááœááºáááºáá»áááºáááºááŸá¯áá»á¬áž áá¯á¶ážááŸá¯á¶ážááœá¬ážááŒááºážááŒá±á¬áá·áº á¡á á¯á¡ááœá²á·áá áºáá¯ááẠááŸá áºááá¯ááºážááœá²ááœá¬ážááá·áºá¡áá«ááŒá áºáááºá áá áºáááºá á®ááœááºá ááŸááºáá»á¬ážááᯠááááºá¡ááŒá áºááá¯á· ááá¯ážááŒáŸáá·áºáá¬ážáá±á¬ááŒá±á¬áá·áº áá±á¬ááºáá¯á¶ážááœáẠáá áºááŸáá·áºá á® ááááºáá»á¬ážá áœá¬ ááŸááá¬áááºááŒá áºáááºá
ááááºážá 17. áááºááááºážá
á®ááŒááºáž ááŸáá·áº ááŸááºááŸá
áºáá»ááºá áá
áºáá¯á
á®ááẠáá®ážááŒá¬áž node áá
áºáá¯áá±á«áºááœáẠááŒá
áºáááºá ááá¯á·áá±á¬áẠááœááºááẠáá»áá¯á·ááœááºážááŸá¯ ááŒá
áºáá±á«áºááŒá®áž ááŸááºáá
áºáá»áẠááœá²ááœá¬ážáá«áááºá ááœá²áá¬ážáá±á¬ áá¯ááºááẠá¡ááŒá¬ážááŸá
áºáᯠááŒá¯ááºáá»ááœá¬ážáááºááᯠááŒááºááŒá®áž áááºážáááŒá±ážáá¯á¶áá»á¬ážááᯠáá¬á
áá¬áᶠááŒáŸáá·áºáááºáá±ážáááºá ááᯠáá»áœááºá¯ááºááá¯á·ááœáẠá
á¬áá±ážááá¯ááºáá±á¬ ááŸáá·áº áááºááá¯ááºáá±á¬ áááºááááºážá
á®ááŸá
áºáá¯ááŸááááºá
áá¯ááºáá±áá°áá»á¬ážááẠáá¬á áá¬ááŸá áºáŠážá áá¯á¶ážáᶠáá±áá¬áá±ážááá¯á·áá«áá áá»áœááºá¯ááºááá¯á·ááẠááœá²ááŒá¬ážáá±á¬ áááºážá á®ááŒááºážá áááá¹áá°ááŸá áºá á±á¬ááºááŒáá·áº á¡áá¯á¶ážáááºáá«áááºá
RabbitMQ á ááá°áá®áá±á¬áá¯ááºáá»á¬ážááẠáááŸáááá¯ááºááŸá¯ ááá¯á·ááá¯áẠááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá á±áááºá
áá»á áºáá»á°ááŸá¯áá¯áẠ(áá°á)
á€áá¯ááºááẠáááºáá±á¬ááºááá¯ááºááŸá¯ááᯠáá±áá»á¬á á±áááºá áá»áááºáááºááŸá¯ áá¯á¶ážááŸá¯á¶ážááŒá®ážáá±á¬ááºá áá¯áá¹áááááºážááŒáá·áº ááœá²ááœááºááŒááºáž ááŒá áºáá±á«áºáááºá áá»áááºáááºááŸá¯ááᯠááŒááºáááºááá°ááŒá®ážáá±á¬ááºá á á®áá¶ááá·áºááœá²áá°á áááºááá·áºá¡ááá¯ááºážááᯠáŠážá á¬ážáá±ážááááºááᯠáá¯á¶ážááŒááºááá«áááºá áá¯á¶ážááŸá¯á¶ážááá·áºáááºááŒááºážááᯠááŒááºáááºá áááºáááºááŒá áºááŒá®áž ááá¯áááºááŒááºážááŸá á á¯áá±á¬ááºážáá¬ážáá±á¬áá±áá¬á¡á¬ážáá¯á¶áž áá¯á¶ážááŸá¯á¶ážááœá¬ážáááºááŒá áºáááºá
ááááºážá 18. ááŒá±áá¬áá°áá¯á¶ážáŠážááẠááœá²á
á¬ážáá¯á¶ážáŠážááŸáá·áº áááºá
ááºáá±áááºá á¡ááœááºážááá¯ááºážá á¡á
á¯á¡ááœá²á·ááẠáá±á¬ááºážááá¯áá»ááºá¡á¬ážáá¯á¶ážááᯠBroker 2 ááŸá áááºááááºážá
á®ááá¯á· áááºážááŒá±á¬ááºážáá±ážáááºá
ááᯠáá»áœááºá¯ááºááá¯á·ááẠááœá²á á¬áž 3 ááᯠáá¯á¶ážááŸá¯á¶ážáá±ááááºá á¡ááŒá¬ážááœá²á á¬ážáá»á¬áž ááŒá¯ááºáá»ááŒá®áž áá°á·ááŸááºááᯠááááºáᶠááŒáŸáá·áºáááºáááºááᯠáá°ááŒááºáááºá á€áááºááŸá¬ áá¯áá¹áááááºážááŒáá·áº ááœá²ááœááºááŒááºáž ááŒá áºáá±á«áºáá¬áá¯á¶á
ááááºážá 19. Logical division (áŠážááŸá±á¬ááºááœá²)á ááŸááºáááºážáá»á¬ážááẠáááºááááºážá
á®ááŸá
áºáá¯ááá¯á· áá±á¬ááºááœá¬ážááŒá®áž áááá¹áá°ááŸá
áºá
á±á¬áẠááœá²ááŒá¬ážááœá¬ážáá«áááºá
áá»áááºáááºááŸá¯ááᯠááŒááºáááºáááŸááá±á¬áºáááºáž áá»áá¯ážááŒá±á¬ááºážáá®áá»á±á¬áºá áœá¬ ááœá²ááŒá¬ážáá¬ážáá²ááŒá áºáááºá á á®áá¶ááá·áºááœá²áá°ááẠááŸá¯á¶ážáááá·áºááá·áºáááºááá¯á· ááá¯ááºááá¯ááºááœá±ážáá»ááºááááºááŒá áºáááºá á¡á±á¬ááºáá±á¬áºááŒáá«ááá á¹á ááœááºá á á®áá¶ááá·áºááœá²áá°á Broker 3 ááᯠááŒááºáááºá áááºáááºá áá°áá±ážááá¯á·ááẠáá á®áá¶áá¬ážáá±á¬ á á¬áá»á¬ážá¡á¬ážáá¯á¶áž áá¯á¶ážááŸá¯á¶ážááœá¬ážáá«áááºá
ááááºážá 20. á
á®áá¶ááá·áºááœá²áá°á Broker 3 ááᯠááááºáááºá
ááááºážá 21. á¡ááºááááºááẠBroker 3 ááᯠá
áááºááŒá®áž áááºážááẠá¡á
á¯á¡áá±ážááœáẠáá«áááºááŒá®áž ááá¯áá±áá¬ááœáẠáá»ááºáá
áºáá²á·ááá·áº á
á¬áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá¯á¶ážááŸá¯á¶ážááœá¬ážá
á±áááºá
áá»áááºáááºááŸá¯ áá»á±á¬ááºáá¯á¶ážáá±áá»áááºááŸáá·áº ááŒááºáááºáá°áá±á¬ááºááŒá®ážáá±á¬ááºááœááºá á¡á á¯á¡áá±ážááŸáá·áº á€áááºážá á®ááẠá á¬áááºááŒááºážááŸáá·áº á á¬áá±ážááŒááºážá¡ááœáẠáááá¯ááºáá«áááºá
Autoheal áá¯ááº
ááœá²ááŒááºážááŸáá·áº áá»áááºáááºááŸá¯ááᯠááŒááºáááºááá°ááŒá®ážáá±á¬áẠá¡á á¯á¡ááœá²á·ááá¯ááºááá¯ááºá áá¯á¶ážááŸá¯á¶ážááœá¬ážááá·áºáááºá¡á¬áž á¡ááá¯á¡áá»á±á¬áẠááœá±ážáá»ááºáá±ážááá·áº ááŸááœá²á áá»á áºáá»á°ááŸá¯áá¯ááºááŸáá·áº á¡áá¬ážáá°áá¯ááºáá±á¬ááºáááºá áá¯á¶ážááŸá¯á¶ážááá·áºáááºá០ááœááºáááºááẠá¡á á¯á¡áá±ážááá¯á· ááŒááºááœá¬ážáᬠáááºážá á®ááẠááá¯áááºááá¯á·áᬠáá±ážááá¯á·áá¬ážááá·áº áááºáá±á·áá»áºá¡á¬ážáá¯á¶ážááᯠáá¯á¶ážááŸá¯á¶ážááœá¬ážáááºááŒá áºáááºá
áá°áááºážá á¯áá¯ááºááᯠáááááºáá«á
á¡áááºá áá»áœááºá¯ááºááá¯á·ááẠáá¯áá¹áááááºážáá»áá» á¡ááá¯ááºážááœá²ááŒááºážááᯠááœáá·áºáááŒá¯ááá¯áá«áá á¡á á¯ááá¯ááºá¡ááá¯ááºážááá¯ááºááŒá®ážáá±á¬áẠáá±ážáááºáá±á¬áááºááŒááºážááœáẠáááºááŸá¯ááŒááºážááŸáá·áº áá±ážááŒááºážáá»á¬ážááᯠá áœáá·áºáá áºááẠáá»áœááºá¯ááºááá¯á·á áá áºáá¯áááºážáá±á¬ ááœá±ážáá»ááºááœáá·áºááŸá¬ ááŒá áºáááºá ááœá²á á¬ážá áááºážááẠáá±ážáááºááá·áºáááºááœáẠááŸááá±áááºááᯠááŒááºáá±á¬á¡áá«á áááºážááẠáááºááŸááá»áááºáááºááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠááááºááŒá®áž á¡áá áºáá»á¬ážááᯠááŒááºážááá¯áááºá áá áºá áá¹ááá·áºáá»áŸáẠáá áºááŒááẠáááºážááẠáá»áááºáááºááŸá¯ááᯠááŒááºáááºááá°ááẠá á áºáá±ážáááºá áá»áááºáááºááŸá¯ááᯠááŒááºáááºááá°ááŒá®ážáááºááŸáá·áº áááºážááẠáááºáááºááŸá¯ááᯠááŒááºáááºá áááºááŒá®áž á¡á á¯á¡áá±ážááœáẠáá«áááºáá«áááºá
ááááºážá 22. ááŒá±áá¬áá°áá¯á¶ážáŠážááẠááœá²á
á¬ážáá¯á¶ážáŠážááŸáá·áº áááºá
ááºáá±áááºá á¡ááœááºážááá¯ááºážá á¡á
á¯á¡ááœá²á·ááẠáá±á¬ááºážááá¯áá»ááºá¡á¬ážáá¯á¶ážááᯠBroker 2 ááŸá áááºááááºážá
á®ááá¯á· áááºážááŒá±á¬ááºážáá±ážáááºá
ááá¯á·áá±á¬áẠááœá²á á¬áž 1 ááŸáá·áº 2 ááẠááœá²á á¬áž 3 á០ááœá²ááœááºááœá¬ážáááºá áááºážááá¯á·á ááŒá±ážáá¯á¶ááᯠááááºá¡ááŒá ẠááŒáŸáá·áºáááºááá·áºá¡á á¬áž Broker 3 ááẠáááºááá¯ááºážááŒá®áž ááááá¯ááºáá±á¬á·áá«á
ááááºážá 23. ááœá²á
á¬áž 3 ááẠáá±áá¹ááááºáááºá áá±á¬ááºáááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá»áááºáááºááŸá¯ááŒá¯ááºááŒá®áž áá»áááºáááºááŸá¯áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠááŒááºážáááºáááºá
áá»áááºáááºááŸá¯ááᯠááŒááºáááºááá°ááŒá®ážáááºááŸáá·áº áááºážááẠá¡á á¯á¡áá±ážááá¯á· ááŒááºááœá¬ážáááºá
Broker 3 ááœáẠá¡ááááááºážá á®áá±ááá·áº á¡ááŒá¬ážá¥ááá¬ááᯠááŒáá·áºááŒáá«á áá¯á·á
ááááºážá 24. Broker 3 ááœáẠá¡ááááááºážá
á®áááºá
á¡á²áá®á¡áá«ááŸá¬ áá°áá®áá²á· áá»áááºáááºááŸá¯ áá»á±á¬ááºáá¯á¶ážááŸá¯ ááŒá áºáá±á«áºáá«áááºá ááœá²á á¬áž 3 ááẠáá±ážáááºááá·áºáááºááœáẠááŸááá±áá±á¬ááŒá±á¬áá·áº áá±áá¹ááááºáááºá á¡ááŒá¬ážáá áºáááºááœááºá Broker 3 ááŒá¯ááºáá»ááœá¬ážáááºááᯠnode áá»á¬ážáááŒááºááá±á¬ááŒá±á¬áá·áº Brokers 1 ááŸáá·áº 2 á០mirror á¡áá±á¬ááºážáá»á¬ážááᯠmaster á¡ááŒá áºááá¯á·ááá¯ážááŒáŸáá·áºáá¬ážáááºá
ááááºážá 25. Broker 2 ááᯠááááŸáááá¯ááºáá«á Broker 3 ááá¯á· áá°ážááŒá±á¬ááºážááŒááºážá
áá»áááºáááºááŸá¯ááᯠááŒááºáááºááá°áá±á¬á¡áá«á Broker 3 ááẠá¡á á¯á¡áá±ážááœáẠáá«áááºáá«áááºá
ááááºážá 26. á¡á
á¯á¡áá±ážááẠáá¯á¶ááŸááºáááºáááºááŸá¯ááá¯á· ááŒááºááœá¬ážáá«ááŒá®á
á€áá±áá¬ááœáẠáá¬ážáááºááẠá¡áá±ážááŒá®ážáá±á¬á¡áá»ááºááŸá¬ áá»áœááºá¯ááºááá¯á·ááẠáá®ááœááºááŸá¯áááŸááááºá ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á·áááºáááºáž áááŸáááá¯ááºááŸá¯á áá»áŸáẠáá»áœááºá¯ááºááá¯á·ááẠááá¹áá¡áá»á¬ážá á¯ááá¯á· áá±á¬ááºáááºáá»á¬ážááᯠá¡á±á¬ááºááŒááºá áœá¬ ááœáŸá²ááŒá±á¬ááºážáá±ážáá«áááºá á¡ááŒá±á¡áá±á¡áá»á¬ážá á¯á¡ááœááºá áá»áœááºá¯ááºááẠPause Minority áá¯ááºááᯠááá¯ááºááá¯ááºááá¯ááºáá» ááœá±ážáá»ááºáááºááŒá áºááŒá®ážá ááá¯á·áá±á¬áº áááºážááẠáá áºáŠážáá»ááºážááá á¹á áá±á«áºáá°áááºáá«áááºá
áááŸáááá¯ááºááŸá¯áá±áá»á¬á á±áááºá client áá»á¬ážááẠhost ááá¯á· á¡á±á¬ááºááŒááºá áœá¬áá»áááºáááºááŒá±á¬ááºážáá±áá»á¬á á±áááºá¡áá±ážááŒá®ážáá«áááºá áá»áœááºá¯ááºááá¯á·áááœá±ážáá»ááºááŸá¯áá»á¬ážááᯠááŒáá·áºááŒáá«á áá¯á·á
Customer áá»áááºáááºááŸá¯ááᯠáá±áá»á¬á á±ááŒááºážá
áá»áááºáááºááŸá¯ áá¯á¶ážááŸá¯á¶ážááŒá®ážáá±á¬áẠáá¯á¶ážá áœá²áá°áá»á¬ážá¡á¬áž á¡á á¯á¡áá±ážá áááºáá¡á áááºá¡ááá¯ááºážááá¯á· ááœáŸááºááŒááẠááá¯á·ááá¯áẠáá¯ááºáá±á¬ááºáá±áá±á¬ áá¯á¶ááŸááºáá»á¬áž (node ââáá áºáá¯áá»ááºááœá¬ážááŒá®ážáá±á¬ááº) á¡ááœáẠááœá±ážáá»ááºá áá¬áá»á¬ážá áœá¬ááŸááááºá ááááŠážá áœá¬á áááºááŸááºáá¬ážáá±á¬ áááºážá á®ááŒááºážááᯠáá®ážááŒá¬áž node áá áºáá¯áá±á«áºááœáẠáááºáá¶áá¬ážááŒá±á¬ááºážá ááá¯á·áá±á¬áº áááºážááŒá±á¬ááºážááŸáá·áº áá°áá«ááá»á¬ážááᯠnode áá»á¬ážá¡á¬ážáá¯á¶ážááœáẠáááºáá°ááœá¬ážáá¬ážááŒá±á¬ááºáž ááááááŒáá«á áá¯á·á áá±á¬ááºáááºáá»á¬ážááẠáááºááá·áº node ááŸáá·áºáááᯠáá»áááºáááºááá¯ááºááŒá®áž á¡ááœááºážááá¯ááºážáááºážááŒá±á¬ááºážá áááºážááá¯á·ááœá¬ážááá¯ááá·áºáá±áá¬ááᯠááœáŸááºáá±ážáááºááŒá áºáááºá ááá¯á·áá±á¬áº node áá áºáá¯á¡á¬áž ááá¯ááºážáá¶á·áá¬ážááá·áºá¡áá« áááºážááẠáá»áááºáááºááŸá¯áá»á¬ážááᯠááŒááºážáááºáááºá ááá¯á·ááŒá±á¬áá·áº client áá»á¬ážááẠá¡ááŒá¬áž node ááá¯á· áá»áááºáááºááááºááŒá áºáááºá á¡áááºá node ááŒá¯ááºáá»áá«áá áá°áá¯ááºááá¯ááºáááºááŸá¬ á¡áááºážáááºáá¬ááŸááááºá
áá»áœááºá¯ááºááá¯á·áááœá±ážáá»ááºááŸá¯áá»á¬áž-
- á¡á á¯á¡áá±ážááᯠnode áá»á¬ážááŸáá áºááá·áº ááá¯ážááá¯ážáááºáááºááá·áº load balancer ááá¯á¡áá¯á¶ážááŒá¯á á¡á á¯á¡áá±ážááᯠáááºáá±á¬ááºááŒá®áž á¡á±á¬ááºááŒááºáááºá¡áá áá»áááºáááºááŸá¯áá»á¬áž áááºáá¶ááŒáá¯ážá á¬ážáá«á á¡áááºá node áá áºáᯠáá»ááºáá±ááẠááá¯á·ááá¯áẠááá¯ááºážáá¶á·áá¬ážáá»áŸáẠááᯠnode ááá¯á· áá»áááºáááºááẠááŒáá¯ážáááºážááŸá¯áá»á¬áž áá¡á±á¬ááºááŒááºáá±á¬áºáááºáž áá±á¬ááºáááºááœá² ááŒáá¯ážáááºážááŸá¯áá»á¬ážááẠá¡ááŒá¬ážáá¬áá¬áá»á¬ážááá¯á· áá±á¬ááºááœá¬ážáááá·áºááẠ( round-robin áá¯á¶á á¶) á áááºážááẠáá±ááá¯áááºááœááºááŸá¯ áá¯á¶ážááŸá¯á¶ážááŒááºáž ááá¯á·ááá¯áẠá¡ááŒááºááŒááºáá°áá¬ááá·áº áá¬áᬠáá»ááºááœá¬ážááŒááºážá¡ááœáẠááá·áºáá»á±á¬áºáááºá
- load balancer ááŸáááá·áº á¡á á¯á¡áá±ážááᯠáááºáá±á¬ááºááŒá®áž ááá¯ááºážáá¶á·áá¬ážáá±á¬/áá¡á±á¬ááºááŒááºáá±á¬ áá¯á¶ááŸááºáá»á¬ážááᯠáááºážááá¯á· ááœá±á·ááŸááááºááŸáá·áºáááŒáá¯ááºááẠá á¬áááºážá០áááºááŸá¬ážáá«á á¡áááºá áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠáá»ááºááŒááºá áœá¬áá¯ááºáá±á¬ááºááŒá®áž áá±á¬ááºáááºáá»á¬ážááẠáá»áááºáááºááŸá¯ááᯠááŒááºáááºááŒáá¯ážá á¬ážááá¯ááºáá«áá áá»áœááºá¯ááºááá¯á·ááẠá¡áááºáááŒááºáááŸáááá¯ááºááŸá¯ááᯠáááŸááááºááŒá áºáááºá
- áááá¯ááºážááá·áºáá áºáŠážá á®á¡á¬áž node áá»á¬ážá¡á¬ážáá¯á¶ážáá á¬áááºážáá áºáá¯áá±ážá client ááẠáá»áááºáááºááá·áºá¡áá« áááºážááá¯á·áá²á០áá áºáá¯ááᯠáá»áááºážááœá±ážáá»ááºáááºá áá»áááºáááºááẠááŒáá¯ážáááºážáá¬ááœáẠá¡ááŸá¬ážá¡ááœááºážáá áºáᯠáááŸááá«á áááºážááẠáá»áááºáááºáááºá¡áá á á¬áááºážááŸá áá±á¬áẠnode ááá¯á· ááœáŸá±á·áááºá
- DNS ááᯠá¡áá¯á¶ážááŒá¯á áá¡á±á¬ááºááŒááºáá±á¬/ááá¯ááºážáá¶á·áá¬ážáá±á¬ node á០áááºážááŒá±á¬ááºážáá»á¬ážááᯠáááºááŸá¬ážáá«á áááºážááẠTTL á¡áá±ážááᯠá¡áá¯á¶ážááŒá¯á áá¯ááºáá±á¬ááºáááºá
ááœá±á·ááŸááá»ááºáá»á¬áž
RabbitMQ á¡á á¯á¡áá±ážááœáẠáááºážá á¡á¬ážáá¬áá»ááºáá»á¬ážááŸáá·áº á¡á¬ážáááºážáá»ááºáá»á¬ážááŸááááºá á¡ááá¯ážááœá¬ážáá¯á¶áž á¡á¬ážáááºážáá»ááºáá»á¬ážááŸá¬-
- á¡á á¯á¡áá±ážáá áºáá¯ááá¯á· áá»áááºáááºáá±á¬á¡áá«á nodes áá»á¬ážááẠáááºážááá¯á·ááá±áá¬áá»á¬ážááᯠá áœáá·áºáá áºáá«á
- áááºáá°ááŒá¯ááŒááºážá¡á¬áž ááááºááá¯á·ááŒááºážááŒá±á¬áá·áº áááºážá á®ááŒááºážááᯠááááŸáááá¯ááºáá±á¬á·áá«á
áááºáá²áá±á¬áá¯á¶ážááŒááºáá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááẠá€áááá¯áá¬á¡ááºá¹áá«áááºááŸá áºáá¯á០áá±á«ááºááœá¬ážáá¬ááŒááºážááŒá áºáááºá á¡áááºá RabbitMQ á á¡á á¯á¡áá±ážááᯠááŒááºáááºáá±á«ááºážá ááºážááá¯ááºáá±á¬á¡áá« áá±áá¬ááᯠááááºážáááºážááá¯ááºáá²á·áá«áá áááºáá°ááŒá¯ááŒááºáž ááá¯ááá¯ááŒááºáááºáá¬áááºááŒá áºáááºá á¡áááºá áááºážááẠááááºááá¯á·ááŒááºážáááŒá¯áá² áááºáá°ááŒá¯ááŒááºážááᯠá áœááºážáá±á¬ááºááá¯ááºáá«áá áááºážááẠááŒá®ážáá¬ážáá±á¬ áááºážá á®ááŒááºážááᯠááá¯ááá¯áá±á¬ááºážááœááºá áœá¬ áá¶á·ááá¯ážááá¯ááºáááºááŒá áºáááºá á€ááŒá¿áá¬ááŸá áºáá¯ááᯠááŒá±ááŸááºážááŒááºážááẠRabbitMQ á á¡ááŸá¬ážá¡ááœááºážááᯠáá¶ááá¯ááºáááºááŸáááŒá®áž á¡ááœááºáááŸáááá¯ááºáá±á¬ á á¬ááá¯áá±ážááá¯á·ááŒááºážáááºážááá¬á¡ááŒá ẠRabbitMQ á á áœááºážáá±á¬ááºáááºááᯠááá¯ááá¯áá±á¬ááºážááœááºá á±áááºááŒá áºáááºá á¡á±á¬ááºáá±á¬áºááŒáá«á¡ááŒá±á¡áá±áá»á¬ážááœáẠá¡á á¯ááá¯ááºááœá²á·ááŒááºážááŒáá·áº RabbitMQ ááᯠá¡ááŒá¶ááŒá¯ááẠáá»á®áá¯á¶áá»áá¯á¶ááŒá áºáá±áá«áááºá
- á áááºááá»ááá±á¬ ááœááºáááºá
- á áááºááá»ááá±á¬ ááá¯ááŸá±á¬ááºááŸá¯á
- á¡ááœááºááŸááºáá»á¬ážáá±á¬áááºážá á®á
ááŒáá·áºáá¬ážáá±á¬áááŸáááá¯ááºááŸá¯áááºáááºáá»á¬ážááŸáá·áºáááºáááºáá¬áá±á¬á¡áá«á á¡á±á¬ááºáá«ááá¯á·ááᯠááá·áºááœááºážá ááºážá á¬ážáá«á
ha-promote-on-failure=always
ha-sync-mode=manual
cluster_partition_handling=ignore
(ááá¯á·ááá¯ááºautoheal
)- á¡ááŒá²ááŸááá±áá±á¬áááºáá±á·ááºá»áá»á¬áž
- á¡áá»áá¯á·áá±á¬ node áá»á¬áž áá»ááºááœááºáá±á¬á¡áá«ááœáẠclients áá»á¬ážááẠactive node ááá¯á· áá»áááºáááºááŒá±á¬ááºáž áá±áá»á¬áá«á á±á
áá áºááááºáááºáž (áá±áá¬áá¯á¶ááŒá¯á¶áá±ážá¡ááœááº) á¡á±á¬ááºáá«áááºáááºáá»á¬ážááᯠá ááºážá á¬ážáá«á
- áá¯ááºáá±áá°ááẠá á¬ážáá¯á¶ážáá°áááºá០á¡áááºááŒá¯ááŒá®áž áááºááŒáá·áº á¡ááá¡ááŸááºááŒá¯ááŸá¯áá»á¬áž
ha-promote-on-failure=when-synced
á¡áááºá áá¯ááºáá±áá°áá»á¬áž áá±á¬ááºá០áááºá ááºážááŒáá·áºááá¯ááºáá»áŸáẠááŸáá·áº ááá·áºááœáẠá¡ááœááºáá¯á¶ááŒááºá áááºáá»ááá±á¬ ááá¯ááŸá±á¬ááºááŸá¯ááŸááá«áá ááá¯ááºááẠáááºáá«á=always
.ha-sync-mode=automatic
(ááá¯á·áá±á¬áº ááŒá®ážáá¬ážáá±á¬ áááŸá¯ááºááŸá¬ážááá¯ááºáá±á¬ á á®áááºážáá»á¬ážá¡ááœáẠáááºá áœá²áá¯áẠááá¯á¡ááºááá¯ááºáááºá ááááŸáááá¯ááºáá«á áááºáá±á·áá»áºáá»á¬ážááᯠáá¯á¶ážááŸá¯á¶ážá á±ááŒááºáž ááŸááááŸáááá¯áááºáž ááá·áºááœááºážá ááºážá á¬ážáá«)- áá°áááºážá á¯áá¯ááºááᯠáááááºáá«á
- á¡ááŒá²ááŸááá±áá±á¬áááºáá±á·ááºá»áá»á¬áž
áá»áœááºá¯ááºááá¯á·ááẠá¡ááŸá¬ážáá¶ááá¯ááºáááºááŸáááŸá¯ááŸáá·áº ááŒáá·áºáá¬ážáá±á¬áááŸáááá¯ááºááŸá¯ááá¯ááºáᬠááŒá¿áá¬á¡á¬ážáá¯á¶ážááᯠáááŒá¯á¶áá¯á¶áááá±ážáá«á á¥ááá¬á¡á¬ážááŒáá·áºá á á®áá¶ááá·áºááœá²áá±ážááá¯ááºáᬠáá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážááᯠáá¯á¶ááŒá¯á¶á¡á±á¬áẠáááºááá¯á·áá¯ááºáá±á¬ááºáááẠ(á¥ááá¬- á¡ááºááááºáá»á¬áž)á á¡ááœá²á·áá»á¯ááºááŸáá·áº Shovel plugin á¡ááŒá±á¬ááºážáááºáž ááŒá±á¬áááºááá¯áá«áááºá
áááŒá¬ážá¡áá¬ááœá± ááœá²áá»á±á¬áºáá²á·ááẠáá»á±ážáá°ážááŒá¯ááŒá®áž ááŒá±á¬ááŒáá±ážáá«á
áá«á·ááá¯áááºážááŒáá·áºáá«á
á
á®ážáá®ážááŸá ááááºáá±á¬ááºážáá«ážáá»á¬áž-
áá¶áá«áẠá -
áá¶áá«áẠá -
áá¶áá«áẠá -
source: www.habr.com