Dengan perkembangan pesat Internet, semakin banyak aplikasi memerlukan sejumlah besar pemesejan. Dalam kes ini, MQ (Message Queue) menjadi penyelesaian yang popular. Banyak bahasa mempunyai pelaksanaan MQ yang sepadan Artikel ini akan memperkenalkan cara menggunakan golang untuk melaksanakan MQ, dan secara ringkas memperkenalkan cara menggunakan pelaksanaan MQ golang untuk menerbitkan dan melanggan mesej.
MQ ialah perisian tengah untuk komunikasi antara aplikasi dan boleh mencapai penghantaran mesej yang boleh dipercayai dalam sistem yang diedarkan. MQ menggunakan model pengeluar-pengguna Pengeluar menghantar mesej kepada MQ, dan pengguna melanggan mesej daripada MQ dan memprosesnya. Terdapat banyak pelaksanaan MQ, seperti Kafka, RabbitMQ, ActiveMQ, dsb. Setiap pelaksanaan ini mempunyai kelebihannya sendiri dan senario yang boleh digunakan.
Dalam golang, terdapat banyak pelaksanaan MQ, seperti NSQ, NATS, dll. Pelaksanaan MQ ini menyediakan pembangun golang dengan kaedah komunikasi berprestasi tinggi dan ketersediaan tinggi. Artikel ini akan mengambil NSQ sebagai contoh untuk memperkenalkan secara ringkas cara menggunakan golang untuk melaksanakan MQ.
NSQ ialah perkhidmatan baris gilir mesej berprestasi tinggi yang diedarkan Matlamat reka bentuk adalah untuk menyediakan penghantaran data yang mudah, boleh dipercayai dan pantas. Ia direka bentuk berdasarkan pustaka rangkaian TCP pustaka standard bahasa Go. Ia digunakan khas untuk mengendalikan operasi I/O penstriman. Bahagian kod ini juga merupakan kod Go tulen. Proses pembangunan ini bermula pada tahun 2011 dan telah ditulis oleh kakitangan Bitly (laman web pautan pendek sosial Amerika dicirikan dengan sama-sama sesuai untuk pemprosesan mesej berskala besar dan unicast yang lebih kecil.
Pertama, kita perlu memasang NSQ. Kaedah pemasangan berbeza bergantung pada sistem pengendalian anda. Pada MacOS, anda boleh menggunakan Homebrew untuk memasangnya. Di Linux, anda boleh memasang menggunakan baris arahan.
Selepas memasang NSQ, kita perlu menggunakan mod pengurus pakej golang untuk memasang pakej nsq. Dalam main.go, kami akan mengimport pakej nsq dan mula menulis kod kami.
package main import ( "fmt" "github.com/nsqio/go-nsq" ) func main() { //定义一个生产者并连接到NSQ Daemon producer, err := nsq.NewProducer("localhost:4150", nsq.NewConfig()) if err != nil { panic(err) } //定义一个消费者并连接到NSQ Daemon consumer, err := nsq.NewConsumer("my_topic", "my_channel", nsq.NewConfig()) if err != nil { panic(err) } //定义一个消息处理函数 consumer.AddHandler(nsq.HandlerFunc(func(msg *nsq.Message) error { fmt.Println(string(msg.Body)) return nil })) //将消费者连接到NSQ Daemon err = consumer.ConnectToNSQD("localhost:4150") if err != nil { panic(err) } //发送消息 err = producer.Publish("my_topic", []byte("Hello World!")) if err != nil { panic(err) } //等待消息处理完成 producer.Stop() consumer.Stop() }
Dalam kod di atas, kami mentakrifkan pengeluar dan pengguna dan menyambungkannya kepada NSQ Daemon. Kami juga mentakrifkan fungsi pengendalian mesej yang mencetak mesej yang diterima. Akhirnya, kami menghantar mesej kepada NSQ.
Kaedah menggunakan nsq adalah seperti berikut:
1 Mulakan arahan nsq: nsqd --lookupd-tcp-address=127.0.0.1:4160
2. Mulakan arahan nsqlookupd: nsqlookupd
3. Mulakan kod aplikasi: go run main.go
Apabila kita melaksanakan kod ini, ia akan menghantar mesej kepada NSQ. Pengguna akan melanggan mesej daripada NSQ dan mencetak kandungan mesej apabila ia diterima.
NSQ sesuai untuk pemprosesan mesej berskala besar Ia mempunyai prestasi tinggi, berskala tinggi dan kebolehpercayaan. Dalam golang, sangat mudah untuk menggunakan NSQ Ia menyediakan API yang mudah dan berkuasa untuk menerbitkan dan melanggan mesej. Jika anda sedang membina aplikasi yang perlu mengendalikan sejumlah besar mesej, cuba gunakan NSQ, ia akan membantu anda menyelesaikan tugas ini dengan baik!
Artikel ini memperkenalkan cara menggunakan golang untuk melaksanakan MQ. Kami menggunakan NSQ sebagai contoh untuk memperkenalkan cara menggunakan pelaksanaan MQ golang untuk menerbitkan dan melanggan mesej. Dalam projek sebenar, terdapat banyak pilihan untuk melaksanakan MQ Apabila memilih penyelesaian MQ, anda perlu memilih berdasarkan keperluan sebenar projek. NSQ ialah pelaksanaan MQ yang berkuasa yang boleh melakukan pemprosesan mesej berskala besar. Ia adalah pilihan yang baik untuk pembangun golang.
Atas ialah kandungan terperinci golang melaksanakan mq. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!