Linux 上で高可用性メッセージング ミドルウェアをセットアップする方法

PHPz
リリース: 2023-07-07 14:45:07
オリジナル
717 人が閲覧しました

Linux 上で高可用性メッセージ ミドルウェアをセットアップする方法

はじめに:
分散アーキテクチャが広く適用されているため、メッセージ ミドルウェアはシステム設計において重要な役割を果たしています。メッセージミドルウェアの高可用性を維持することは、システムを安定して動作させるために非常に重要です。この記事では、Linux 上で高可用性メッセージ ミドルウェアをセットアップする方法と、対応するコード例を紹介します。

1. 高可用性メッセージ ミドルウェアとは
高可用性とは通常、障害が発生したときにシステムまたはサービスが実行を継続でき、可能な限り通常の動作状態に復元できることを意味します。重要な分散システム コンポーネントとして、メッセージ ミドルウェアは高可用性を実現するように設計されており、どのような状況でもメッセージ ミドルウェアが利用可能であり、メッセージの信頼性の高い配信が保証されます。

2. Linux 上のメッセージ ミドルウェア
Linux には、RabbitMQ、Kafka、ActiveMQ など、成熟したメッセージ ミドルウェアが多数あります。この記事では、RabbitMQ を例として、Linux 上で高可用性メッセージ ミドルウェアをセットアップする方法を紹介します。

  1. RabbitMQ のインストール
    まず、Linux に RabbitMQ をインストールする必要があります。 Ubuntu を例に挙げると、次のコマンドを使用してインストールできます。

    sudo apt-get install rabbitmq-server
    ログイン後にコピー
  2. RabbitMQ クラスターの構成
    高可用性を実現するには、複数の RabbitMQ ノードを含む RabbitMQ クラスターを構成する必要があります。 。各ノードで、以下を構成する必要があります。

2.1 RabbitMQ 構成ファイルを変更する
次のコマンドを使用して、RabbitMQ 構成ファイルを編集します。

sudo nano /etc/rabbitmq/rabbitmq.conf
ログイン後にコピー

以下を追加します。設定ファイルの内容:

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
ログイン後にコピー

これらの設定項目は、RabbitMQ クラスターを有効にし、ノード検出のバックエンドとして AWS を指定するために使用されます。

2.2 RabbitMQ ノードの起動
次のコマンドを使用して RabbitMQ ノードを起動します:

sudo rabbitmq-server
ログイン後にコピー

起動が完了したら、ブラウザで RabbitMQ 管理インターフェイスにアクセスして、次のことを確認できます。ノードは正常に起動されました。デフォルトのアドレスは http://localhost:15672 です。

2.3 クラスターに参加する
他のノードをクラスターに追加するには、次のコマンドを使用します。

sudo rabbitmqctl stop_app sudo rabbitmqctl join_cluster rabbit@node1 sudo rabbitmqctl start_app
ログイン後にコピー

ここで、node1は、追加されたノードの名前です。始めました。

  1. メッセージを確実に配信する
    メッセージを確実に配信するために、RabbitMQ が提供する永続メッセージとリリース確認メカニズムを使用できます。

3.1 永続メッセージ
メッセージを送信するとき、RabbitMQ ノードがダウンしたときにメッセージが失われないように、メッセージを永続としてマークできます。例は次のとおりです。

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) # 设置消息持久化 )
ログイン後にコピー

3.2 リリース確認メカニズム
リリース確認メカニズムを有効にすることで、RabbitMQ がメッセージを正常に受信したことを確認できます。例は次のとおりです:

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!' )
ログイン後にコピー

3. 概要
この記事では、Linux 上で高可用性メッセージ ミドルウェアをセットアップする方法を紹介し、RabbitMQ のサンプル コードを提供します。実際のアプリケーションでは、特定のニーズに応じてさらに構成と最適化が必要になります。高可用性メッセージ ミドルウェアを合理的に使用することにより、システムの堅牢性と信頼性が向上し、分散環境でもメッセージの信頼性の高い配信が保証されます。

リファレンス:

  1. RabbitMQ ドキュメント: https://www.rabbitmq.com/
  2. Kafka ドキュメント: https://kafka.apache.org/
  3. ActiveMQ ドキュメント: https://activemq.apache.org/
#注: 上記のサンプル コードは参照専用であり、実際のアプリケーションの特定の状況に応じて変更する必要がある場合があります。 。

以上がLinux 上で高可用性メッセージング ミドルウェアをセットアップする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!