Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Laksanakan baris gilir mesej menggunakan NATS dalam Beego

Laksanakan baris gilir mesej menggunakan NATS dalam Beego

王林
王林asal
2023-06-23 08:56:411215semak imbas

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.

Apakah itu NATS

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.

Menggunakan NATS dalam Beego

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.

Langkah 1: Pasang klien NATS

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

Langkah 2: Wujudkan sambungan

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()

Langkah 3: Hantar mesej

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)
}

Langkah 4: Terima mesej

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)
}

Langkah 5: Proses mesej

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))
}

Langkah 6: Menggunakan NATS dalam Beego

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.

Ringkasan

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!

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