Dengan peningkatan aplikasi teragih dan seni bina perkhidmatan mikro, baris gilir mesej telah menjadi cara penting untuk menyelesaikan komunikasi dan pemprosesan data antara aplikasi. Dengan perkembangan pesat pengkomputeran awan, Internet, Internet mudah alih dan Internet of Things, permintaan untuk pertukaran data antara kluster pelayan dan komunikasi yang cekap antara aplikasi menjadi lebih kuat dan kukuh, sebagai sokongan berbilang protokol berprestasi tinggi , Sistem baris gilir mesej peringkat perusahaan dengan skalabiliti tinggi telah menjadi salah satu baris gilir mesej yang paling popular hari ini. Artikel ini akan memperkenalkan cara menggunakan RabbitMQ untuk melaksanakan baris gilir mesej dalam aplikasi Golang.
1. Apakah RabbitMQ
RabbitMQ ialah perisian baris gilir mesej sumber terbuka yang melaksanakan piawaian Protokol Giliran Mesej Lanjutan (AMQP). Ia ditulis dalam bahasa Erlang dan mempunyai skalabiliti, daya pemprosesan dan kebolehpercayaan yang tinggi. RabbitMQ menggunakan mesej untuk menghantar data, membenarkan aplikasi menyimpan mesej dalam baris gilir supaya aplikasi lain boleh membaca dan memprosesnya secara tidak segerak.
2. Pemasangan dan konfigurasi RabbitMQ
Pertama, anda perlu memuat turun pakej pemasangan platform yang sepadan dari laman web rasmi RabbitMQ. Selepas pemasangan, anda perlu mengubah suai fail konfigurasi RabbitMQ rabbitmq.config untuk menentukan nombor port lalai RabbitMQ dan pemalam yang didayakan.
Contoh kod fail konfigurasi rabbitmq.config:
[
{rabbit, [{tcp_listeners, [{"0.0.0.0", 5672}]}]},
{rabbitmq_management, [{pendengar, [{port, 15672}]}]}
].
3. Cara menggunakan RabbitMQ di Golang
Untuk menggunakan RabbitMQ dalam aplikasi Golang, anda perlu memasang klien RabbitMQ terlebih dahulu Anda boleh menggunakan arahan berikut untuk memasangnya:
pergi dapatkan github.com/streadway/amqp<.>
"hello", //队列名称 false, //是否持久化队列 false, //是否自动删除 false, //是否独占队列 false, //队列阻塞等待 nil, //额外的属性
"", //交换机名称 q.Name, //队列名称 false, //是否强制发送到队列 false, //是否持久化消息 amqp.Publishing { ContentType: "text/plain", Body: []byte("Hello World!"), },
q.Name, //队列名称 "", //用于区分多个消费者 true, //是否自动确认消息 false, //是否独占队列 false, //队列阻塞等待 nil, //额外的属性
for d := range msgs { log.Printf("Received a message: %s", d.Body) }
Atas ialah kandungan terperinci Cara menggunakan RabbitMQ untuk melaksanakan baris gilir mesej dalam aplikasi Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!