{"id":28396,"date":"2019-07-17T00:00:56","date_gmt":"2019-07-16T22:00:56","guid":{"rendered":"https:\/\/blexin.com\/?p=28396"},"modified":"2021-05-21T20:31:48","modified_gmt":"2021-05-21T18:31:48","slug":"high-availability-con-rabbitmq","status":"publish","type":"post","link":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/","title":{"rendered":"High availability con RabbitMQ"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" data-attachment-id=\"28397\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/765a3b0a-b2dd-4500-b995-2926cf4268f7\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&amp;ssl=1\" data-orig-size=\"1024,608\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"765a3b0a-b2dd-4500-b995-2926cf4268f7\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?resize=1024%2C608&#038;ssl=1\" alt=\"\" class=\"wp-image-28397\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7-980x582.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7-480x285.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Quando si ha a che fare con sistemi complessi, spesso \u00e8 necessario prevedere meccanismi per i quali i servizi forniti risultino sempre disponibili, ovvero si richiede che un sistema sia altamente affidabile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nell\u2019articolo precedente (<a href=\"https:\/\/www.blexin.com\/it-IT\/Article\/Blog\/Disaccoppiare-la-comunicazione-con-RabbitMQ-40\" target=\"_blank\" rel=\"noreferrer noopener\">Disaccoppiare la comunicazione con RabbitMQ<\/a>), esplorando le sue caratteristiche di base, abbiamo visto come&nbsp;<em>RabbitMQ<\/em>&nbsp;sia un\u2019ottima soluzione per far s\u00ec che applicazioni diverse possano instaurare una comunicazione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ma RabbitMQ mette a disposizione anche delle features che lo rendono uno strumento valido per quei sistemi che richiedono un certo livello di&nbsp;<strong>QoS<\/strong>&nbsp;(Quality of Service).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un broker RabbitMQ pu\u00f2 essere definito come l\u2019insieme logico di uno o pi\u00f9 nodi che eseguono l\u2019applicazione RabbitMQ e condividono le stesse entit\u00e0 (code, exchanges, bindings, etc.).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019insieme di nodi viene anche chiamato&nbsp;<strong>cluster<\/strong>. Tali nodi sono identificati all\u2019interno del cluster mediante il loro nome, formato da un prefisso e da un hostname che, per tale motivo, deve essere unico.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inoltre, l\u2019hostname \u00e8 necessario per l\u2019identificazione tra i nodi stessi del cluster e quindi un hostname deve essere risolvibile, ad esempio mediante un sistema DNS (Domain Name System).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per questo motivo, e per simulare al meglio la composizione di un cluster, possiamo definire una rete Docker di tipo\u00a0<strong>bridge<\/strong>\u00a0che fornisca una risoluzione DNS automatica tra container.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\ndocker network create --subnet=192.168.0.0\/16 cluster-network\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Possiamo creare i nodi del cluster utilizzando due container Docker che eseguano RabbitMQ. I comandi sono i seguenti:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\ndocker run -d -h node1.rabbit \\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0--net cluster-network --ip 192.168.0.10\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0--name rabbitNode1\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0--add-host node2.rabbit:192.168.0.11\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-p &quot;4369:4369&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-p &quot;5672:5672&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-p &quot;15672:15672&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-p &quot;25672:25672&quot;\\ \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-p &quot;35672:35672&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-e &quot;RABBITMQ_USE_LONGNAME=true&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-e RABBITMQ_ERLANG_COOKIE=&quot;cookie&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0rabbitmq:3-management\n\u00a0\n\u00a0\ndocker run -d -h node2.rabbit\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0--net cluster-network --ip 192.168.0.11\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0--name rabbitNode2\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0--add-host node1.rabbit:192.168.0.10\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-p &quot;4370:4369&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-p &quot;5673:5672&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-p &quot;15673:15672&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-p &quot;25673:25672&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-p &quot;35673:35672&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-e &quot;RABBITMQ_USE_LONGNAME=true&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-e RABBITMQ_ERLANG_COOKIE=&quot;cookie&quot;\\\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0rabbitmq:3-management\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"921\" height=\"192\" data-attachment-id=\"28399\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/1-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1-1.png?fit=921%2C192&amp;ssl=1\" data-orig-size=\"921,192\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1-1.png?fit=921%2C192&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1-1.png?resize=921%2C192&#038;ssl=1\" alt=\"\" class=\"wp-image-28399\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/1-1.png 921w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/1-1-480x100.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 921px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Attualmente, i due nodi sono entit\u00e0 separate:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RabbitNode1<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"451\" data-attachment-id=\"28402\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/2-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-2.png?fit=1882%2C828&amp;ssl=1\" data-orig-size=\"1882,828\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"2-2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-2.png?fit=1024%2C451&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-2.png?resize=1024%2C451&#038;ssl=1\" alt=\"\" class=\"wp-image-28402\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/2-2-980x431.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/2-2-480x211.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">RabbitNode2<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"451\" data-attachment-id=\"28404\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/3-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-2.png?fit=1882%2C828&amp;ssl=1\" data-orig-size=\"1882,828\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"3-2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-2.png?fit=1024%2C451&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-2.png?resize=1024%2C451&#038;ssl=1\" alt=\"\" class=\"wp-image-28404\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3-2-980x431.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3-2-480x211.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Per fare in modo che due nodi possano appartenere allo stesso cluster bisogna assicurarsi che determinate porte siano accessibili, in particolare:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>4369: epdm<\/strong>&nbsp;(ERLANG PORT MAPPER DAEMON), un servizio per la scoperta dei peer, utilizzato dai nodi e dai tool CLI di RabbitMQ;<\/li><li><strong>5672<\/strong>: porta usata dal protocollo AMQP;<\/li><li><strong>25672<\/strong>: utilizzata per la comunicazione tra nodi e con la CLI;<\/li><li><strong>35672-35682<\/strong>: utilizzati dai tools CLI per la comunicazione con i nodi;<\/li><li><strong>15672<\/strong>: utilizzata ad esempio per il plugin di management UI.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Inoltre, notiamo che, tra le variabili di ambiente configurate, viene definita RABBITMQ_ERLANG_COOKIE. Si tratta di una chiave segreta, che consente a due nodi di un cluster di poter interagire tra loro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fermiamo l\u2019esecuzione di RabbitMQ sul nodo rabbitNode2:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\ndocker exec rabbitNode2 rabbitmqctl stop_app\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">e successivamente:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\ndocker exec rabbitNode2 rabbitmqctl join_cluster rabbit@node1.rabbit\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"147\" data-attachment-id=\"28407\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/4-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-2.png?fit=1182%2C170&amp;ssl=1\" data-orig-size=\"1182,170\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"4-2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-2.png?fit=1024%2C147&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-2.png?resize=1024%2C147&#038;ssl=1\" alt=\"\" class=\"wp-image-28407\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/4-2-1024x147.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/4-2-980x141.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/4-2-480x69.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Facendo ripartire l\u2019applicazione:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\ndocker exec rabbitNode2 rabbitmqctl start_app\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Otteniamo il seguente risultato:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"167\" data-attachment-id=\"28410\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/5-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/5-2.png?fit=1182%2C193&amp;ssl=1\" data-orig-size=\"1182,193\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"5-2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/5-2.png?fit=1024%2C167&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/5-2.png?resize=1024%2C167&#038;ssl=1\" alt=\"\" class=\"wp-image-28410\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/5-2-1024x167.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/5-2-980x160.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/5-2-480x78.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Chiaramente, la Managment UI risulta molto comoda e pratica, ma possiamo ottenere le informazioni sul cluster anche lanciando il seguente comando:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\ndocker exec rabbitNode1 rabbitmqctl cluster_status\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"262\" data-attachment-id=\"28412\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/6-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/6-2.png?fit=1430%2C366&amp;ssl=1\" data-orig-size=\"1430,366\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"6-2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/6-2.png?fit=1024%2C262&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/6-2.png?resize=1024%2C262&#038;ssl=1\" alt=\"\" class=\"wp-image-28412\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/6-2-980x251.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/6-2-480x123.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Proviamo ad inviare un messaggio al nostro cluster utilizzando l\u2019applicazione&nbsp;<strong>Sender<\/strong>, mostrata nell\u2019articolo precedente. Una volta eseguita l\u2019applicazione, andiamo sulle management UI dei due nodi dove possiamo notare che la coda \u00e8 stata creata ed il messaggio \u00e8 accodato correttamente ma tutto ci\u00f2 che accade \u00e8 replicato su entrambi i nodi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RabbitNode1<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"634\" data-attachment-id=\"28415\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/7-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7-2.png?fit=1272%2C787&amp;ssl=1\" data-orig-size=\"1272,787\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"7-2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7-2.png?fit=1024%2C634&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7-2.png?resize=1024%2C634&#038;ssl=1\" alt=\"\" class=\"wp-image-28415\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/7-2-1024x634.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/7-2-980x606.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/7-2-480x297.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">RabbitNode2<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"634\" data-attachment-id=\"28417\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/8-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/8-2.png?fit=1272%2C787&amp;ssl=1\" data-orig-size=\"1272,787\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"8-2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/8-2.png?fit=1024%2C634&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/8-2.png?resize=1024%2C634&#038;ssl=1\" alt=\"\" class=\"wp-image-28417\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/8-2-1024x634.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/8-2-980x606.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/8-2-480x297.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ma cosa succede se uno dei nodi smette di funzionare?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se fermiamo l\u2019esecuzione sul nodo rabbitNode1 mentre il messaggio \u00e8 in coda e andiamo sulla management UI del nodo rabbitNode2 ci ritroviamo in questa situazione:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"458\" data-attachment-id=\"28419\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/9-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/9-2.png?fit=1272%2C569&amp;ssl=1\" data-orig-size=\"1272,569\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"9-2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/9-2.png?fit=1024%2C458&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/9-2.png?resize=1024%2C458&#038;ssl=1\" alt=\"\" class=\"wp-image-28419\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/9-2-1024x458.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/9-2-980x438.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/9-2-480x215.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Creando un cluster, abbiamo sicuramente la replicazione di dati e stati necessari al funzionamento del broker, ma ci\u00f2 non vale per le code, che di base risiedono su un solo nodo. Per questo motivo, terminando l\u2019esecuzione del nodo rabbitNode1, abbiamo perso il messaggio inviato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per ovviare a questa situazione spiacevole, che comporta perdita di informazione, RabbitMQ consente di creare delle&nbsp;<strong>High Available Queue<\/strong>, dette anche&nbsp;<strong>Mirrored Queue<\/strong>. Una coda quindi, che risiede su di un nodo (<strong>master<\/strong>), pu\u00f2 essere replicata, cos\u00ec come le operazioni che avvengono su di essa, sui nodi (<strong>mirrors<\/strong>) che compongono il cluster.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per configurare le code del cluster affinch\u00e9 siano replicate, bisogna definire una&nbsp;<strong>policy<\/strong>, ovvero un pattern condiviso da tutte le code rappresentato da una regular expression.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lanciamo il seguente comando:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\ndocker exec rabbitNode1 rabbitmqctl set_policy ha &quot;.&quot; &#039;{&quot;ha-mode&quot;:&quot;all&quot;}&#039;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">dove&nbsp;<strong>ha<\/strong>&nbsp;\u00e8 il nome della policy,&nbsp;<strong>\u201c.\u201d<\/strong>&nbsp;\u00e8 il pattern e&nbsp;<strong>ha-mode<\/strong>&nbsp;settato ad&nbsp;<strong>\u201call\u201d<\/strong>&nbsp;indica che tutte le code devono essere high available.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Creiamo nuovamente la coda avviando l\u2019applicazione Sender e nella sezione queues della managment UI ritroveremo quanto descritto all\u2019interno dei dettagli della nostra coda.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"901\" height=\"576\" data-attachment-id=\"28422\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/10-3\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/10-3.png?fit=901%2C576&amp;ssl=1\" data-orig-size=\"901,576\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"10-3\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/10-3.png?fit=901%2C576&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/10-3.png?resize=901%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-28422\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/10-3.png 901w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/10-3-480x307.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 901px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Se adesso stoppiamo il container rabbitNode1, il nodo non sar\u00e0 pi\u00f9 in esecuzione ma a differenza di prima la coda \u00e8 ancora disponibile e non abbiamo perso il messaggio.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"637\" data-attachment-id=\"28424\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/11-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/11-1.png?fit=1257%2C782&amp;ssl=1\" data-orig-size=\"1257,782\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"11-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/11-1.png?fit=1024%2C637&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/11-1.png?resize=1024%2C637&#038;ssl=1\" alt=\"\" class=\"wp-image-28424\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/11-1-1024x637.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/11-1-980x610.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/11-1-480x299.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Per riceverlo correttamente, bisogna per\u00f2 apportare una piccola modifica alla nostra applicazione consumer, definita nel precedente articolo come\u00a0<strong>Receiver<\/strong>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nvar endPointList = new List&lt;amqptcpendpoint&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new AmqpTcpEndpoint(&quot;localhost&quot;, 5672),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new AmqpTcpEndpoint(&quot;localhost&quot;, 5673)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0};\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var factory = new ConnectionFactory();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0using (var connection = factory.CreateConnection(endPointList))\n&lt;\/amqptcpendpoint&gt;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Definiamo una lista di Endpoint (i nodi del nostro cluster), specificando le porte per il protocollo AMQP. Passiamo tale lista come parametro del metodo CreateConnection, messo a disposizione dal client RabbitMQ per .NET, il quale si occupa di verificare quale endpoint sia disponibile per la connessione al broker.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eseguendo l\u2019applicazione\u00a0<strong>Receiver<\/strong>\u00a0notiamo come il messaggio venga consumato correttamente:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"627\" data-attachment-id=\"28427\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/12-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/12-1.png?fit=1182%2C724&amp;ssl=1\" data-orig-size=\"1182,724\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"12-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/12-1.png?fit=1024%2C627&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/12-1.png?resize=1024%2C627&#038;ssl=1\" alt=\"\" class=\"wp-image-28427\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/12-1-1024x627.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/12-1-980x600.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/12-1-480x294.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"627\" data-attachment-id=\"28429\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/13-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/13-1.png?fit=1105%2C677&amp;ssl=1\" data-orig-size=\"1105,677\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"13-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/13-1.png?fit=1024%2C627&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/13-1.png?resize=1024%2C627&#038;ssl=1\" alt=\"\" class=\"wp-image-28429\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/13-1-1024x627.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/13-1-980x600.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/13-1-480x294.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"326\" height=\"250\" data-attachment-id=\"28431\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/attachment\/14-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/14.gif?fit=326%2C250&amp;ssl=1\" data-orig-size=\"326,250\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"14\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/14.gif?fit=326%2C250&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/14.gif?resize=326%2C250&#038;ssl=1\" alt=\"\" class=\"wp-image-28431\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Al prossimo articolo.<\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Vediamo come utilizzare RabbitMQ in contesti di alta disponibilit\u00e0<\/p>\n","protected":false},"author":196716251,"featured_media":28397,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_crdt_document":"","inline_featured_image":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[688637374],"tags":[688637545,688637457,688637536],"class_list":["post-28396","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-docker","tag-rabbitmq","tag-swdesign"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>High availability con RabbitMQ - Blexin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"High availability con RabbitMQ - Blexin\" \/>\n<meta property=\"og:description\" content=\"Vediamo come utilizzare RabbitMQ in contesti di alta disponibilit\u00e0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/\" \/>\n<meta property=\"og:site_name\" content=\"Blexin\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-16T22:00:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-21T18:31:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i2.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"608\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Genny Paudice\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Genny Paudice\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/high-availability-con-rabbitmq\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/high-availability-con-rabbitmq\\\/\"},\"author\":{\"name\":\"Genny Paudice\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/ae0e97a3ebb79d2f73e4411c1eb28973\"},\"headline\":\"High availability con RabbitMQ\",\"datePublished\":\"2019-07-16T22:00:56+00:00\",\"dateModified\":\"2021-05-21T18:31:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/high-availability-con-rabbitmq\\\/\"},\"wordCount\":781,\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/high-availability-con-rabbitmq\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&ssl=1\",\"keywords\":[\"Docker\",\"RabbitMQ\",\"softwaredesign\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/high-availability-con-rabbitmq\\\/\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/high-availability-con-rabbitmq\\\/\",\"name\":\"High availability con RabbitMQ - Blexin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/high-availability-con-rabbitmq\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/high-availability-con-rabbitmq\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&ssl=1\",\"datePublished\":\"2019-07-16T22:00:56+00:00\",\"dateModified\":\"2021-05-21T18:31:48+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/ae0e97a3ebb79d2f73e4411c1eb28973\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/high-availability-con-rabbitmq\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/high-availability-con-rabbitmq\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/high-availability-con-rabbitmq\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&ssl=1\",\"width\":1024,\"height\":608},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/high-availability-con-rabbitmq\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blexin.com\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"High availability con RabbitMQ\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blexin.com\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/ae0e97a3ebb79d2f73e4411c1eb28973\",\"name\":\"Genny Paudice\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3093a6ee7b7f555e94e4a5d6f19cb09f3af33635007643b2076eb89329789828?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3093a6ee7b7f555e94e4a5d6f19cb09f3af33635007643b2076eb89329789828?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3093a6ee7b7f555e94e4a5d6f19cb09f3af33635007643b2076eb89329789828?s=96&d=identicon&r=g\",\"caption\":\"Genny Paudice\"},\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/author\\\/genny-paudiceblexin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"High availability con RabbitMQ - Blexin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/","og_locale":"it_IT","og_type":"article","og_title":"High availability con RabbitMQ - Blexin","og_description":"Vediamo come utilizzare RabbitMQ in contesti di alta disponibilit\u00e0","og_url":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/","og_site_name":"Blexin","article_published_time":"2019-07-16T22:00:56+00:00","article_modified_time":"2021-05-21T18:31:48+00:00","og_image":[{"width":1024,"height":608,"url":"https:\/\/i2.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&ssl=1","type":"image\/png"}],"author":"Genny Paudice","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Genny Paudice","Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/"},"author":{"name":"Genny Paudice","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/ae0e97a3ebb79d2f73e4411c1eb28973"},"headline":"High availability con RabbitMQ","datePublished":"2019-07-16T22:00:56+00:00","dateModified":"2021-05-21T18:31:48+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/"},"wordCount":781,"image":{"@id":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&ssl=1","keywords":["Docker","RabbitMQ","softwaredesign"],"articleSection":["Blog"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/","url":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/","name":"High availability con RabbitMQ - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&ssl=1","datePublished":"2019-07-16T22:00:56+00:00","dateModified":"2021-05-21T18:31:48+00:00","author":{"@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/ae0e97a3ebb79d2f73e4411c1eb28973"},"breadcrumb":{"@id":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/#primaryimage","url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&ssl=1","width":1024,"height":608},{"@type":"BreadcrumbList","@id":"https:\/\/blexin.com\/it\/blog\/high-availability-con-rabbitmq\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/it\/"},{"@type":"ListItem","position":2,"name":"High availability con RabbitMQ"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/it\/#website","url":"https:\/\/blexin.com\/it\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/ae0e97a3ebb79d2f73e4411c1eb28973","name":"Genny Paudice","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/3093a6ee7b7f555e94e4a5d6f19cb09f3af33635007643b2076eb89329789828?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3093a6ee7b7f555e94e4a5d6f19cb09f3af33635007643b2076eb89329789828?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3093a6ee7b7f555e94e4a5d6f19cb09f3af33635007643b2076eb89329789828?s=96&d=identicon&r=g","caption":"Genny Paudice"},"url":"https:\/\/blexin.com\/it\/author\/genny-paudiceblexin-com\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/765a3b0a-b2dd-4500-b995-2926cf4268f7.png?fit=1024%2C608&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pcyUBx-7o0","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/28396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/users\/196716251"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/comments?post=28396"}],"version-history":[{"count":8,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/28396\/revisions"}],"predecessor-version":[{"id":28434,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/28396\/revisions\/28434"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media\/28397"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media?parent=28396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/categories?post=28396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/tags?post=28396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}