Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >Bagaimana untuk menyediakan baris gilir mesej yang sangat tersedia di Linux

Bagaimana untuk menyediakan baris gilir mesej yang sangat tersedia di Linux

王林
王林asal
2023-07-06 22:46:351458semak imbas

Cara untuk menyediakan baris gilir mesej yang sangat tersedia di Linux

Pengenalan:
Baris gilir mesej ialah kaedah komunikasi yang biasa digunakan dalam sistem teragih moden Ia boleh memindahkan data antara berbilang proses atau berbilang pelayan untuk mencapai penyahgandingan dan Tujuan komunikasi tak segerak. Pada sistem Linux, kami boleh menggunakan beberapa perisian baris gilir mesej sumber terbuka untuk membina sistem baris gilir mesej yang sangat tersedia. Artikel ini akan mengambil RabbitMQ sebagai contoh untuk memperkenalkan cara membina dan mengkonfigurasi baris gilir mesej yang sangat tersedia di Linux.

Langkah 1: Pasang RabbitMQ
Mula-mula, kita perlu memasang RabbitMQ pada sistem Linux. RabbitMQ boleh dipasang melalui arahan berikut:

sudo apt-get install rabbitmq-server

Langkah 2: Konfigurasikan kelompok RabbitMQ
Untuk mencapai ketersediaan tinggi, kita perlu mengkonfigurasi berbilang nod RabbitMQ sebagai gugusan. Berikut ialah contoh mudah, dengan mengandaikan kita mempunyai dua pelayan, Node1 dan Node2. Kami perlu mengedit fail konfigurasi RabbitMQ pada kedua-dua pelayan.

Pada Node1, buka fail /etc/rabbitmq/rabbitmq.config dan tambah kandungan berikut: /etc/rabbitmq/rabbitmq.config文件,并添加以下内容:

[{rabbit, [{cluster_nodes, {['rabbit@Node1', 'rabbit@Node2'], disc}}]}].

在Node2上,打开/etc/rabbitmq/rabbitmq.config文件,并添加以下内容:

[{rabbit, [{cluster_nodes, {['rabbit@Node1', 'rabbit@Node2'], disc}}]}].

需要注意的是,上述配置文件中的节点名称需要根据实际情况进行修改。保存文件后,重启RabbitMQ服务:

sudo systemctl restart rabbitmq-server

步骤三:设置RabbitMQ镜像队列
RabbitMQ提供了镜像队列的功能,可以将消息队列在多个节点之间进行复制,实现数据的冗余存储,提高系统的可靠性。我们可以在创建队列时通过设置durablearguments参数来实现镜像队列的功能。

import pika

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

# 在声明队列时,通过设置durable参数为True来持久化队列
channel.queue_declare(queue='my_queue', durable=True)

# 在声明队列时,通过设置arguments参数来设置镜像队列的策略
channel.queue_declare(queue='my_queue', durable=True,
                     arguments={"x-ha-policy": 'all'})

connection.close()

需要注意的是,在设置镜像队列时需要保证集群中的所有节点都已经配置成集群。可以通过以下命令来查看集群中的节点信息:

sudo rabbitmqctl cluster_status

步骤四:配置负载均衡
为了实现负载均衡,我们可以使用Nginx作为消息队列的代理服务器。下面是一个简单的Nginx配置文件示例。

http {
   upstream rabbitmq_servers {
        server 192.168.1.100:5672 fail_timeout=60s max_fails=3;
        server 192.168.1.101:5672 fail_timeout=60s max_fails=3;
    }
    
    server {
        listen          5672;
        
        location / {
            proxy_pass  http://rabbitmq_servers;
            proxy_redirect off;
        }
    }
}

在上述配置文件中,我们定义了两个RabbitMQ服务器的地址和端口,通过proxy_passrrreee

Pada Node2, buka /etc/rabbitmq/rabbitmq.config kod> fail dan tambah kandungan berikut:

rrreee
Perlu diambil perhatian bahawa nama nod dalam fail konfigurasi di atas perlu diubah suai mengikut situasi sebenar. Selepas menyimpan fail, mulakan semula perkhidmatan RabbitMQ:

rrreee

Langkah 3: Sediakan baris gilir cermin RabbitMQ

RabbitMQ menyediakan fungsi baris gilir cermin, yang boleh menyalin baris gilir mesej antara berbilang nod untuk mencapai penyimpanan data yang berlebihan dan meningkatkan prestasi sistem kebolehpercayaan. Kita boleh melaksanakan fungsi baris gilir cermin dengan menetapkan parameter tahan lama dan arguments semasa membuat baris gilir.
    rrreee
  1. Perlu diingatkan bahawa semasa menyediakan baris gilir cermin, anda perlu memastikan semua nod dalam kluster telah dikonfigurasikan menjadi kluster. Anda boleh melihat maklumat nod dalam kluster melalui arahan berikut:
  2. rrreee
  3. Langkah 4: Konfigurasikan pengimbangan beban
  4. Untuk mencapai pengimbangan beban, kami boleh menggunakan Nginx sebagai pelayan proksi untuk baris gilir mesej. Di bawah ialah contoh fail konfigurasi Nginx yang mudah.
rrreee🎜Dalam fail konfigurasi di atas, kami menentukan alamat dan port dua pelayan RabbitMQ, dan memajukan permintaan kepada pelayan ini melalui arahan proxy_pass. Nginx akan mengedarkan permintaan mesej secara sama rata kepada nod RabbitMQ yang berbeza mengikut algoritma pengimbangan beban, dengan itu mencapai kesan pengimbangan beban. 🎜🎜Kesimpulan: 🎜Melalui langkah di atas, kita boleh membina dan mengkonfigurasi sistem baris gilir mesej yang tersedia pada sistem Linux. Menggunakan fungsi kluster yang disediakan oleh RabbitMQ, replikasi data dan failover antara nod boleh dicapai untuk memastikan kebolehpercayaan sistem dan ketersediaan yang tinggi. Dengan mengkonfigurasi pengimbangan beban, anda boleh mencapai pengimbangan beban dan pengoptimuman prestasi baris gilir mesej. Saya harap artikel ini dapat membantu pembaca menyediakan baris gilir mesej yang tersedia pada sistem Linux. 🎜🎜Pautan rujukan: 🎜🎜🎜[RabbitMQ](https://www.rabbitmq.com/)🎜🎜[Nginx](https://nginx.org/)🎜🎜

Atas ialah kandungan terperinci Bagaimana untuk menyediakan baris gilir mesej yang sangat tersedia di Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn