Rumah > Operasi dan penyelenggaraan > operasi dan penyelenggaraan linux > Bagaimana untuk menyediakan perisian tengah pemesejan yang sangat tersedia di Linux

Bagaimana untuk menyediakan perisian tengah pemesejan yang sangat tersedia di Linux

PHPz
Lepaskan: 2023-07-07 14:45:07
asal
914 orang telah melayarinya

Cara menyediakan perisian tengah mesej yang sangat tersedia di Linux

Pengenalan:
Dengan aplikasi seni bina teragih yang meluas, perisian tengah mesej memainkan peranan penting dalam reka bentuk sistem. Mengekalkan ketersediaan tinggi perisian tengah mesej adalah penting untuk pengendalian sistem yang stabil. Artikel ini akan memperkenalkan cara untuk menyediakan perisian tengah mesej yang sangat tersedia di Linux dan memberikan contoh kod yang sepadan.

1. Apakah middleware mesej ketersediaan tinggi Ketersediaan tinggi biasanya bermakna sistem atau perkhidmatan boleh terus berjalan apabila kegagalan berlaku dan boleh dipulihkan kepada status operasi normal sebanyak mungkin. Sebagai komponen sistem teragih yang penting, perisian tengah mesej direka bentuk untuk ketersediaan tinggi untuk memastikan perisian tengah mesej kekal tersedia dalam apa jua keadaan dan untuk memastikan penghantaran mesej yang boleh dipercayai.

2 Message middleware di Linux

Di Linux, terdapat banyak middleware mesej matang untuk dipilih, seperti RabbitMQ, Kafka, ActiveMQ, dll. Artikel ini mengambil RabbitMQ sebagai contoh untuk memperkenalkan cara menyediakan perisian tengah mesej yang sangat tersedia di Linux.

  1. Pasang RabbitMQ

    Mula-mula, kita perlu memasang RabbitMQ pada Linux. Mengambil Ubuntu sebagai contoh, anda boleh menggunakan arahan berikut untuk memasang:

    sudo apt-get install rabbitmq-server
    Salin selepas log masuk

  2. Konfigurasikan kluster RabbitMQ
  3. Untuk mencapai ketersediaan tinggi, kita perlu mengkonfigurasi kluster RabbitMQ yang mengandungi berbilang nod RabbitMQ. Pada setiap nod, kita perlu mengkonfigurasi perkara berikut:
2.1 Ubah suai fail konfigurasi RabbitMQ

Gunakan arahan berikut untuk mengedit fail konfigurasi RabbitMQ:

sudo nano /etc/rabbitmq/rabbitmq.conf
Salin selepas log masuk

Tambah kandungan berikut dalam fail konfigurasi:

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
Salin selepas log masuk

Item konfigurasi ini digunakan untuk mendayakan kelompok RabbitMQ dan menentukan AWS sebagai hujung belakang untuk penemuan nod.

2.2 Mulakan nod RabbitMQ

Gunakan arahan berikut untuk memulakan nod RabbitMQ:

sudo rabbitmq-server
Salin selepas log masuk

Selepas permulaan selesai, anda boleh mengakses antara muka pengurusan RabbitMQ dalam penyemak imbas untuk memastikan nod telah berjaya dimulakan. Alamat lalai ialah: http://localhost:15672.

2.3 Sertai kluster

Untuk menambah nod lain pada kluster, gunakan arahan berikut:

sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster rabbit@node1
sudo rabbitmqctl start_app
Salin selepas log masuk

di mana,

ialah nama nod yang telah dimulakan. node1

    Biar mesej dihantar dengan pasti
  1. Untuk memastikan penghantaran mesej yang boleh dipercayai, kami boleh menggunakan mekanisme pengesahan mesej dan pelepasan yang berterusan yang disediakan oleh RabbitMQ.
3.1 Mesej Berterusan

Apabila menghantar mesej, anda boleh menandakan mesej itu sebagai berterusan untuk memastikan mesej itu tidak akan hilang apabila nod RabbitMQ turun. Contohnya adalah seperti berikut:

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)  # 设置消息持久化
)
Salin selepas log masuk

3.2 Mekanisme pengesahan pelepasan

Dengan mendayakan mekanisme pengesahan keluaran, anda boleh memastikan mesej berjaya diterima oleh RabbitMQ. Contohnya adalah seperti berikut:

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!'
)
Salin selepas log masuk

3. Ringkasan

Artikel ini memperkenalkan cara untuk menyediakan perisian tengah mesej yang sangat tersedia di Linux dan menyediakan kod sampel untuk RabbitMQ. Dalam aplikasi sebenar, konfigurasi dan pengoptimuman lanjut diperlukan mengikut keperluan khusus. Dengan menggunakan perisian tengah mesej yang tersedia secara rasional, keteguhan dan kebolehpercayaan sistem boleh dipertingkatkan, dan penyampaian mesej yang boleh dipercayai dapat dipastikan dalam persekitaran yang diedarkan.

Rujukan:

    Dokumentasi RabbitMQ: https://www.rabbitmq.com/
  1. Dokumentasi Kafka: https://kafka.apache.org/
  2. Dokumentasi ActiveMQ: https://active /orgmq.apache.
Nota: Kod contoh di atas adalah untuk rujukan sahaja dan mungkin perlu diubah suai mengikut keadaan tertentu dalam aplikasi sebenar.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan