Maison Opération et maintenance exploitation et maintenance Linux Comment configurer un middleware de messagerie hautement disponible sous Linux

Comment configurer un middleware de messagerie hautement disponible sous Linux

Jul 07, 2023 pm 02:45 PM
linux高可用 消息中间件设置 高可用消息中间件

Comment configurer un middleware de messages hautement disponible sous Linux

Introduction :
Avec l'application généralisée de l'architecture distribuée, le middleware de messages joue un rôle essentiel dans la conception du système. Le maintien d’une haute disponibilité du middleware de messages est crucial pour le fonctionnement stable du système. Cet article explique comment configurer un middleware de messages hautement disponible sous Linux et fournit des exemples de code correspondants.

1. Qu'est-ce qu'un middleware de messages à haute disponibilité ? La haute disponibilité signifie généralement qu'un système ou un service peut continuer à fonctionner lorsqu'une panne se produit et peut être restauré à son état de fonctionnement normal autant que possible. En tant que composant important du système distribué, le middleware de messages est conçu pour une haute disponibilité afin de garantir que le middleware de messages reste disponible en toutes circonstances et d'assurer une livraison fiable des messages.

2. Middleware de messages sous Linux

Sous Linux, il existe de nombreux middlewares de messages matures parmi lesquels choisir, tels que RabbitMQ, Kafka, ActiveMQ, etc. Cet article prend RabbitMQ comme exemple pour présenter comment configurer un middleware de messages hautement disponible sous Linux.

  1. Installer RabbitMQ

    Tout d'abord, nous devons installer RabbitMQ sur Linux. En prenant Ubuntu comme exemple, vous pouvez utiliser la commande suivante pour installer :

    sudo apt-get install rabbitmq-server
    Copier après la connexion

  2. Configurer le cluster RabbitMQ
  3. Afin d'atteindre une haute disponibilité, nous devons configurer un cluster RabbitMQ qui contient plusieurs nœuds RabbitMQ. Sur chaque nœud, nous devons configurer les éléments suivants :
2.1 Modifier le fichier de configuration RabbitMQ

Utilisez la commande suivante pour modifier le fichier de configuration RabbitMQ :

sudo nano /etc/rabbitmq/rabbitmq.conf
Copier après la connexion

Ajoutez le contenu suivant dans le fichier de configuration :

cluster_formation.peer_discovery_backend = rabbit_peer_discovery_aws
cluster_formation.aws.region = us-east-1
cluster_formation.aws.access_key_id = YOUR_ACCESS_KEY
cluster_formation.aws.secret_access_key = YOUR_SECRET_KEY
cluster_formation.aws.tag.Cluster = YOUR_CLUSTER_TAG
cluster_formation.aws.back_off_base = 2
cluster_formation.aws.back_off_multiplier = 1.2
Copier après la connexion

Ces éléments de configuration sont utilisés pour activer le cluster RabbitMQ et spécifier AWS comme backend pour la découverte de nœuds.

2.2 Démarrez le nœud RabbitMQ

Utilisez la commande suivante pour démarrer le nœud RabbitMQ :

sudo rabbitmq-server
Copier après la connexion

Une fois le démarrage terminé, vous pouvez accéder à l'interface de gestion RabbitMQ dans le navigateur pour vous assurer que le nœud a été démarré avec succès. L'adresse par défaut est : http://localhost:15672.

2.3 Rejoindre le cluster

Pour ajouter d'autres nœuds au cluster, utilisez la commande suivante :

sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster rabbit@node1
sudo rabbitmqctl start_app
Copier après la connexion

où,

est le nom du nœud qui a été démarré. node1

    Laissez les messages être livrés de manière fiable
  1. Afin de garantir une livraison fiable des messages, nous pouvons utiliser le mécanisme de confirmation de message persistant et de libération fourni par RabbitMQ.
3.1 Message persistant

Lors de l'envoi d'un message, vous pouvez marquer le message comme persistant pour vous assurer qu'il ne sera pas perdu lorsque le nœud RabbitMQ tombe en panne. Un exemple est le suivant :

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello', durable=True)  # 声明队列为持久化的

channel.basic_publish(
    exchange='',
    routing_key='hello',
    body='Hello World!',
    properties=pika.BasicProperties(delivery_mode=2)  # 设置消息持久化
)
Copier après la connexion

3.2 Mécanisme de confirmation de version

En activant le mécanisme de confirmation de version, vous pouvez vous assurer que le message est reçu avec succès par RabbitMQ. Un exemple est le suivant :

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello')

channel.confirm_delivery()  # 启用发布确认机制

def on_delivery_confirmation(frame):
    if frame.method.NAME == 'Basic.Ack':
        print('Message successfully delivered to RabbitMQ')
    else:
        print('Message failed to be delivered to RabbitMQ')

channel.add_on_delivery_callback(on_delivery_confirmation)

channel.basic_publish(
    exchange='',
    routing_key='hello',
    body='Hello World!'
)
Copier après la connexion

3. Résumé

Cet article explique comment configurer un middleware de messages hautement disponible sur Linux et fournit un exemple de code pour RabbitMQ. Dans les applications réelles, une configuration et une optimisation supplémentaires sont nécessaires en fonction des besoins spécifiques. En utilisant de manière rationnelle un middleware de messages hautement disponible, la robustesse et la fiabilité du système peuvent être améliorées, et une livraison fiable des messages peut être assurée dans un environnement distribué.

Référence :

    Documentation RabbitMQ : https://www.rabbitmq.com/
  1. Documentation Kafka : https://kafka.apache.org/
  2. Documentation ActiveMQ : https://activemq.apache.org /
Remarque : l'exemple de code ci-dessus est uniquement à titre de référence et peut devoir être modifié en fonction de circonstances spécifiques dans les applications réelles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Dead Rails - Comment apprivoiser les loups
4 Il y a quelques semaines By DDD
Niveaux de force pour chaque ennemi et monstre de R.E.P.O.
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
2 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1658
14
Tutoriel PHP
1257
29
Tutoriel C#
1231
24
Où afficher les journaux de Tigervnc sur Debian Où afficher les journaux de Tigervnc sur Debian Apr 13, 2025 am 07:24 AM

Dans Debian Systems, les fichiers journaux du serveur TiGervnc sont généralement stockés dans le dossier .vnc dans le répertoire personnel de l'utilisateur. Si vous exécutez TiGervnc en tant qu'utilisateur spécifique, le nom du fichier journal est généralement similaire à XF: 1.log, où XF: 1 représente le nom d'utilisateur. Pour afficher ces journaux, vous pouvez utiliser la commande suivante: Cat ~ / .vnc / xf: 1.log ou, vous pouvez ouvrir le fichier journal à l'aide d'un éditeur de texte: nano ~ / .vnc / xf: 1.log, veuillez noter que l'accès et la visualisation des fichiers journaux peuvent nécessiter des autorisations racinaires, en fonction des paramètres de sécurité du système.

Comment Debian Readdir s'intègre à d'autres outils Comment Debian Readdir s'intègre à d'autres outils Apr 13, 2025 am 09:42 AM

La fonction ReadDir dans le système Debian est un appel système utilisé pour lire le contenu des répertoires et est souvent utilisé dans la programmation C. Cet article expliquera comment intégrer ReadDir avec d'autres outils pour améliorer sa fonctionnalité. Méthode 1: combinant d'abord le programme de langue C et le pipeline, écrivez un programme C pour appeler la fonction readdir et sortir le résultat: # include # include # include # includeIntmain (intargc, char * argv []) {dir * dir; structDirent * entrée; if (argc! = 2) {

Architecture Linux: dévoiler les 5 composants de base Architecture Linux: dévoiler les 5 composants de base Apr 20, 2025 am 12:04 AM

Les cinq composants de base du système Linux sont: 1. Kernel, 2. Bibliothèque système, 3. Utilitaires système, 4. Interface utilisateur graphique, 5. Applications. Le noyau gère les ressources matérielles, la bibliothèque système fournit des fonctions précompilées, les utilitaires système sont utilisés pour la gestion du système, l'interaction GUI fournit une interaction visuelle et les applications utilisent ces composants pour implémenter des fonctions.

Comment interpréter les résultats de sortie de Debian Sniffer Comment interpréter les résultats de sortie de Debian Sniffer Apr 12, 2025 pm 11:00 PM

DebianSniffer est un outil de renifleur de réseau utilisé pour capturer et analyser les horodatages du paquet de réseau: affiche le temps de capture de paquets, généralement en quelques secondes. Adresse IP source (SourceIP): l'adresse réseau de l'appareil qui a envoyé le paquet. Adresse IP de destination (DestinationIP): l'adresse réseau de l'appareil recevant le paquet de données. SourcePort: le numéro de port utilisé par l'appareil envoyant le paquet. Destinatio

Comment recycler des packages qui ne sont plus utilisés Comment recycler des packages qui ne sont plus utilisés Apr 13, 2025 am 08:51 AM

Cet article décrit comment nettoyer les packages logiciels inutiles et libérer l'espace disque dans le système Debian. Étape 1: Mettez à jour la liste des packages Assurez-vous que votre liste de packages est à jour: SudoaptupDate Étape 2: Afficher les packages installés Utilisez la commande suivante pour afficher tous les packages installés: DPKG - GETT-Selections | Grep-Vdeinstall Étape 3: Identifier les packages de redondance Utilisez l'outil d'aptitude pour trouver des packages qui ne sont plus nécessaires. L'aptitude fournira des suggestions pour vous aider à supprimer en toute sécurité les packages: SudoaptitudEsearch '~ Pimportant' Cette commande répertorie les balises

Comment surveiller les performances de Nginx SSL sur Debian Comment surveiller les performances de Nginx SSL sur Debian Apr 12, 2025 pm 10:18 PM

Cet article décrit comment surveiller efficacement les performances SSL des serveurs Nginx sur les systèmes Debian. Nous utiliserons NginxExporter pour exporter des données d'état NGINX à Prometheus, puis l'afficher visuellement via Grafana. Étape 1: Configuration de Nginx Tout d'abord, nous devons activer le module Stub_Status dans le fichier de configuration NGINX pour obtenir les informations d'état de Nginx. Ajoutez l'extrait suivant dans votre fichier de configuration Nginx (généralement situé dans /etc/nginx/nginx.conf ou son fichier incluant): emplacement / nginx_status {Stub_status

Opérations clés de Linux: Guide du débutant Opérations clés de Linux: Guide du débutant Apr 09, 2025 pm 04:09 PM

Les débutants Linux doivent maîtriser les opérations de base telles que la gestion des fichiers, la gestion des utilisateurs et la configuration du réseau. 1) Gestion des fichiers: utilisez les commandes MKDIR, Touch, LS, RM, MV et CP. 2) Gestion des utilisateurs: utilisez des commandes UserAdd, Passwd, UserDel et UserMod. 3) Configuration du réseau: utilisez les commandes IFConfig, Echo et UFW. Ces opérations sont à la base de la gestion du système Linux, et les maîtriser peut gérer efficacement le système.

Comment installer phpstorm dans Debian System Comment installer phpstorm dans Debian System Apr 13, 2025 am 06:03 AM

Installez PHPStorm sur le système Debian pour résoudre facilement votre environnement de développement PHP! Les étapes suivantes vous guideront tout au long du processus d'installation. Étapes d'installation: Téléchargez PHPStorm: Visitez le site officiel de JetBrains et téléchargez la dernière version de PhpStorm. Décompressez le package d'installation: après téléchargement à l'aide de WGET ou Curl, déziptez-le dans le répertoire spécifié (par exemple / OPT). Exemple de commande: wgethttps: //download.jetbrains.com/phpstorm/phpstorm-2024.3.5.tar.gztar-xzfphpstorm-2024.3.5.5

See all articles