<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archives des Rabbitmq - Xavki</title>
	<atom:link href="https://xavki.blog/category/rabbitmq/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Open your Sources..</description>
	<lastBuildDate>Sat, 02 Apr 2022 19:26:45 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Débutons et formons nous à Rabbitmq</title>
		<link>https://xavki.blog/debutons-et-formons-nous-a-rabbitmq/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Sat, 02 Apr 2022 19:26:39 +0000</pubDate>
				<category><![CDATA[Rabbitmq]]></category>
		<guid isPermaLink="false">https://xavki.blog/?p=1451</guid>

					<description><![CDATA[<p>Et voici le retour du lapin, Rabbitmq est un des moteurs de message queue les plus connus du marché. Gratuit bien sûr et opensource, cette technologie de plus en plus flexible permet de traiter différentes architectures. Dans cette nouvelle suite... <a href="https://xavki.blog/debutons-et-formons-nous-a-rabbitmq/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/debutons-et-formons-nous-a-rabbitmq/">Débutons et formons nous à Rabbitmq</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Et voici le retour du lapin, Rabbitmq est un des moteurs de message queue les plus connus du marché. Gratuit bien sûr et opensource, cette technologie de plus en plus flexible permet de traiter différentes architectures. Dans cette nouvelle suite de tutorials, <a href="https://xavki.blog/tutoriels-rabbitmq-pour-debuter/">je vous propose de débuter rabbitmq</a>.</p>



<p>Depuis plusieurs années, avec l&#8217;émergence des microservices et la modernisation des archiectures (event queuing, intégration de l&#8217;asynchrone&#8230;), les bus de messages ou queues de messages jouent un rôle fondamental. Par ailleurs avec l&#8217;arrivée de technologies facilitant le scaling (kubernetes, conteneurisation, compute dans le cloud etc), leur intégration devient comme une  évidence. Ajouter des consommateurs de messages (consumers) par cette méthode  n&#8217;est plus un problème grâce aux méthodes de first in first out.</p>



<p>Un des atouts de Rabbitmq c&#8217;est la facilité d&#8217;installation. Alors que le mode de haute disponibilité c&#8217;est accrue récemment avec notamment l&#8217;arrivée des quorum queues, Rabbitmq est une solution légère et très configurable. Kafka n&#8217;est pas aussi facile d&#8217;approche de ce côté, même si récemment la suppression d&#8217;un cluster zookeeper spécifique a donné un bon coup de pouce.</p>



<p>Rabbitmq apporte également différents modes de management comme l&#8217;interface graphique, son API ou encore la ligne de commande. Bref de sérieux atouts pour toutes les sysadmin, devops ou SRE en charge de gérer ce type de cluster.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Premier Cluster - #Rabbitmq 05" width="625" height="352" src="https://www.youtube.com/embed/YSGWlV0RoVc?list=PLn6POgpklwWqiqKEriklbvbSd60-weOqh" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Comment installer Rabbitmq ?</h2>



<p>L&#8217;installation est très simple. Dans notre cas, <strong>nous le ferons sur une debian 11.2 en bullseye.</strong> Mais vous pouvez installer ce produit sur de nombreux OS (windows, MacOS) et autres distributions (redhat, ubuntu&#8230;).</p>



<p>Alors il faut savoir que Rabbitmq est développé sur un langage un peu moins courant : le Erlang. Eh oui c&#8217;est ainsi mais ce n&#8217;est pas pour autant que le produit n&#8217;est pas actif et qu&#8217;il est difficile à installer.</p>



<p>Donc premier pas, installons le dépôt APT pour erlang :</p>



<pre class="wp-block-preformatted">curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg > /dev/null

echo "deb [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/debian bullseye main" | sudo tee -a /etc/apt/sources.list.d/rabbitmq.list</pre>



<p>Ensuite même opération pour installer le dépôt apt pour rabbitmq :</p>



<pre class="wp-block-preformatted">curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/gpg.9F4587F226208342.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg > /dev/null

echo "deb [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian bullseye main" | sudo tee -a /etc/apt/sources.list.d/rabbitmq.list</pre>



<p>Derrière bien sûr nous allons enchainer avec une petite mise à jour de notre cache APT et l&#8217;installation d&#8217;un meta package pour erlang ainsi que rabbitmq-server.</p>



<pre class="wp-block-preformatted">sudo apt update
sudo apt install -y erlang-nox rabbitmq-server
dpkg -l | grep rabbitmq</pre>



<p>Une autre méthode encore plus rapide est de directement télécharger le fichier .deb qui va faire sa petite installation trankilou :</p>



<pre class="wp-block-preformatted">sudo apt install erlang-nox
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.13/rabbitmq-server_3.9.13-1_all.deb
sudo dpkg -i rabbitmq-server_3.9.13-1_all.deb</pre>



<p>Ensuite on peu jeter un oeil à notre installation et vérifier que tout est bon.</p>



<pre class="wp-block-preformatted">sudo rabbitmq-diagnostics ping
sudo rabbitmq-diagnostics status
sudo rabbitmq-diagnostics cluster_status
sudo rabbitmq-diagnostics environment</pre>



<p>Enfin nous allons procéder à l&#8217;installation du plugin de management qui va nous permettre de bénéficier de l&#8217;interface graphique :</p>



<p><code>rabbitmq-plugins enable rabbitmq_management</code></p>



<p>Je vous propose maintenant de faire la même chose pour diposer de 3 serveurs rabbitmq au total car nous allons mettre en place notre cluster. Déroulez la même procédure y compris l&#8217;activation du plugin.</p>



<h2 class="wp-block-heading">Installation du cluster rabbitmq</h2>



<p>Bien maintenan on va installer <a href="https://xavki.blog/tutoriels-rabbitmq-pour-debuter/">notre premier cluster rabbitmq</a>. Alors comme on débute on commence à se dire que c&#8217;est pas gagné et que l&#8217;on est partie pour une longue série de commandes dans la CLI.</p>



<p>Pas tout à fait car <strong>c&#8217;est extrêmement simple d&#8217;installer le cluster.</strong></p>



<p>Première chose sur tous les noeuds du cluster nous allons permettre une écoute sur toutes les interfaces (vous pouvez restreindre bien sûr).</p>



<pre class="wp-block-preformatted">echo "YOATBIGKDHUSBLUSTOAW" | sudo tee /var/lib/rabbitmq/.erlang.cookie
echo "listeners.tcp.1 = 0.0.0.0:5672" | sudo tee -a /etc/rabbitmq/rabbitmq.conf
echo "management.tcp.port = 15672" | sudo tee -a /etc/rabbitmq/rabbitmq.conf
systemctl restart rabbitmq-server</pre>



<p>Notons  que le port 15672 est le port de l&#8217;interface de management donc l&#8217;interface graphique. </p>



<p>Dans la première ligne nous avons <strong>définit le erlang cookie</strong>, c&#8217;est une sorte de token qui va permettre à tout nos noeuds de cluster de se vérifier et s&#8217;accepter.</p>



<p>Donc on applique tout cela sur chacune des machines.</p>



<p>Alors on peut ensuite <strong>préparer un utilisateur</strong> (xavki/password) et mettre en place quelques éléments relatifs à nos accès au cluster (on pourrait aussi le faire après la finalisation du cluster peu importe).</p>



<p><code>rabbitmqctl add_user xavki password</code></p>



<p>Par sécurité on peut aussi faire un </p>



<p><code>rabbitmqctl del_user guest</code></p>



<p>C&#8217;est un utilisateur par défaut c&#8217;est jamais terrible de les garder niveau sécurité ;).</p>



<p>Ajoutons des droits à notre utilisateur xavki : </p>



<p><code>rabbitmqctl set_permissions -p / xavki ".*" ".*" ".*"</code></p>



<p>et encore le statut d&#8217;adminitrateur via un tag :</p>



<p><code>rabbitmqctl set_user_tags xavki administrator</code></p>



<p>Bon ben on en finit avec <strong>la création de notre cluster</strong> en demandant aux serveurs 2 et 3 de rejoindre notre leader ou premier noeud, la vérification se faisant sur le erlang cookie :</p>



<pre class="wp-block-preformatted">rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rmq1
rabbitmqctl start_app</pre>



<p>Et enfin on peut vérifier les membres de notre cluster :</p>



<p><code>rabbitmqctl cluster_status --formatter=json | jq -r .running_nodes[]</code></p>



<p>Alors ce n&#8217;était pas compliqué.</p>



<p>Allez dans un prochain article, on s&#8217;amusera à mettre tout cela en place avec un bon Vagrantfile et un petit srcipt bash d&#8217;installation 🙂</p>
<p>L’article <a href="https://xavki.blog/debutons-et-formons-nous-a-rabbitmq/">Débutons et formons nous à Rabbitmq</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
