Rumah > Artikel > pembangunan bahagian belakang > Laksanakan baris gilir mesej menggunakan NATS dalam Beego
Memandangkan perusahaan moden terus berkembang, pemesejan tak segerak yang cekap telah menjadi kritikal. Dalam kes ini, baris gilir mesej ialah penyelesaian yang boleh dipercayai dan berskala yang boleh membantu pembangun berkomunikasi antara sistem yang berbeza. Dalam artikel ini, kami akan memperkenalkan cara melaksanakan baris gilir mesej menggunakan NATS dalam Beego.
NATS ialah sistem pemesejan sumber terbuka, ringan dan pantas yang boleh digunakan untuk berkomunikasi merentasi pelbagai persekitaran. Ia ialah sistem pemesejan berprestasi tinggi yang boleh digunakan untuk komunikasi titik-ke-titik yang mudah, corak terbitkan-langganan dan baris gilir.
Lapisan bawah NATS adalah berdasarkan protokol TCP/IP, dan bahasa yang digunakan ialah bahasa Go. Ia menyediakan beberapa fungsi pemesejan asas seperti kegigihan, sandaran dan failover.
NATS ialah sistem pemesejan merentas bahasa ringan yang boleh disepadukan dengan lancar dengan banyak rangka kerja bahagian belakang. Di sini kami akan memperkenalkan cara melaksanakan baris gilir mesej menggunakan NATS dalam Beego.
Untuk menggunakan sistem pemesejan NATS, kami perlu memasang klien yang sepadan. Anda boleh menggunakan alat antara muka baris arahan bahasa Go untuk melengkapkan pemasangan melalui arahan berikut:
go get github.com/nats-io/nats.go
Mewujudkan sambungan ialah langkah pertama dalam menggunakan Perpustakaan pelanggan NATS. Sambungan NATS baharu boleh dibuat dengan kod berikut:
nc, err := nats.Connect("nats://localhost:4222") if err != nil { log.Fatal(err) } defer nc.Close()
Selepas sambungan diwujudkan, kami boleh menghantar mesej. Mesej boleh dihantar ke topik yang ditentukan melalui kod berikut:
err := nc.Publish("subject", []byte("message")) if err != nil { log.Fatal(err) }
Menerima mesej memerlukan melanggan topik tertentu Anda boleh menggunakan kod berikut untuk melanggan :
_, err := nc.Subscribe("subject", func(m *nats.Msg) { log.Printf("Received a message: %s ", string(m.Data)) }) if err != nil { log.Fatal(err) }
Selepas menerima mesej, kami boleh memprosesnya. Ini memerlukan mencipta fungsi pengendali yang akan menerima mesej pada topik yang dilanggan dan kemudian melakukan tindakan yang ditentukan. Sebagai contoh:
func handleMsg(msg []byte) { fmt.Printf("Received message: %s", string(msg)) }
Sekarang kita tahu cara menggunakan NATS, bagaimana kita mengaplikasikannya dalam Beego? Cara mudah ialah mencipta Pengawal dan mewujudkan sambungan kepada NATS, dan kemudian mewakilkan tugas melanggan dan memproses mesej kepada kaedah yang sepadan. Contohnya:
package controllers import ( "github.com/beego/beego/v2/server/web" "github.com/nats-io/nats.go" ) type MessageController struct { web.Controller nc *nats.Conn } func (this *MessageController) Prepare() { this.nc, _ = nats.Connect("nats://localhost:4222") } func (this *MessageController) Get() { this.TplName = "message.tpl" } func (this *MessageController) Post() { text := this.GetString("text") err := this.nc.Publish("subject", []byte(text)) if err != nil { this.Abort("500") } this.Redirect("/", 302) } func (this *MessageController) WebSocket() { this.TplName = "websocket.tpl" _, err := this.nc.Subscribe("subject", func(m *nats.Msg) { this.Data["text"] = string(m.Data) this.Render() }) if err != nil { this.Abort("500") } }
Dalam contoh ini, kami mentakrifkan Pengawal bernama MessageController. Ia mempunyai tiga kaedah: Dapatkan, Pos dan WebSocket.
Kaedah Dapatkan ialah pengendali permintaan HTTP GET mudah yang digunakan untuk memaparkan halaman mesej yang mengandungi kotak teks dan butang hantar.
Kaedah Post ialah pengendali permintaan HTTP POST yang digunakan untuk menghantar teks dalam kotak teks kepada NATS.
Kaedah WebSocket ialah pengendali permintaan HTTP yang dinaik taraf kepada protokol WebSocket, yang melanggan topik tertentu dan kemudian menerima mesej pada WebSocket dan membentangkannya kepada pelanggan.
Dalam artikel ini, kami mempelajari tentang sistem pemesejan NATS dan cara menggunakannya dalam Beego untuk melaksanakan pemesejan tak segerak. Dengan menggunakan NATS, kami boleh memisahkan pelbagai sistem dengan mudah dan mencapai komunikasi tak segerak yang boleh dipercayai, yang sangat penting untuk perusahaan moden. Kami berharap artikel ini membantu dan membantu anda memahami cara melaksanakan baris gilir mesej menggunakan NATS dalam Beego.
Atas ialah kandungan terperinci Laksanakan baris gilir mesej menggunakan NATS dalam Beego. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!