Menggunakan Thrift untuk tadbir urus perkhidmatan di Beego

WBOY
Lepaskan: 2023-06-22 22:09:48
asal
793 orang telah melayarinya

Dengan kematangan beransur-ansur dan populariti seni bina berorientasikan perkhidmatan dan seni bina perkhidmatan mikro, tadbir urus perkhidmatan telah menjadi isu yang semakin penting. Di Golang, Beego, sebagai rangka kerja web yang agak popular, sebenarnya menyediakan beberapa kaedah tadbir urus perkhidmatan yang boleh digunakan, termasuk penyepaduan dengan Thrift Mari kita bincangkan secara terperinci cara menggunakan Thrift untuk tadbir urus perkhidmatan dalam Beego.

1. Apakah itu Jimat

Thrift ialah rangka kerja penghantaran data merentas bahasa sumber terbuka oleh Facebook Ia boleh digunakan untuk mentakrifkan dan menjana pengekodan data, penyahkodan dan perkhidmatan untuk panggilan jauh. berlakon. Berbeza daripada rangka kerja RPC yang lain, Thrift menggunakan format data, struktur dan kaedah penjanaan kod yang berbeza daripada bahasa itu sendiri, dan menyedari keupayaan interaksi data antara platform yang berbeza, yang bermaksud bahawa kita boleh menggunakannya untuk menyelesaikan masalah komunikasi antara bahasa yang berbeza .

Kelebihan Thrift ialah kebebasan bahasa, merentas platform, pelbagai bahasa boleh atur cara, penjanaan kod mudah, prestasi yang baik, dsb.

2. Jimat dalam Beego

Walaupun rangka kerja Beego tidak menyediakan rangka kerja untuk tadbir urus perkhidmatan secara rasmi, Thrift masih boleh digunakan untuk tadbir urus perkhidmatan di dalamnya. Menggunakan Thrift, kami boleh melaksanakan seni bina perkhidmatan teragih dengan cepat dalam Beego.

Konfigurasikan persekitaran berjalan

1 Dapatkan pakej kod Jimat dalam Beego

Masukkan arahan berikut dalam tetingkap baris arahan:

go get git.apache.org/thrift.git/lib/go/thrift

2. Tambahkan alamat perkhidmatan Jimat dan nombor port dalam fail konfigurasi projek

Dalam projek Beego, kita perlu menambah konfigurasi jimat pada fail konfigurasi. Tambahkan konfigurasi berikut pada fail app.conf:

[thrift]
Addr = "127.0.0.1:9090"
Salin selepas log masuk

3. Tambahkan fail Thrift IDL pada projek

Kami boleh mencipta folder jimat cermat baharu dalam projek untuk menyimpan definisi antara muka jimat. Fail bahasa. Sebagai contoh, kami mencipta fail kalkulator.jimat dalam projek dan mentakrifkan antara muka perkhidmatan kalkulator di dalamnya:

enum Operation {
    ADD = 1,
    SUBTRACT = 2,
    MULTIPLY = 3,
    DIVIDE = 4
}

struct Work {
    1: i32 num1,
    2: i32 num2,
    3: Operation op,
    4: i32       client_id,
}

service Calculator {
    i32 calculate(1: Work work),
}
Salin selepas log masuk

mentakrifkan perkhidmatan Kalkulator di dalamnya dan merangkum kaedah pengiraan dalam perkhidmatan untuk menerima parameter Struktur Kerja dan mengembalikan hasil integer.

4. Susun fail Thrift IDL ke dalam fail bahasa sasaran

Kami perlu menjana fail kod bahasa yang sepadan daripada fail bahasa definisi antara muka jimat dalam projek. Sebagai contoh, dalam projek kami, kami perlu menggunakan alat jimat untuk menyusun kalkulator.jimat ke dalam fail bahasa Go Mula-mula, kami perlu menjalankan arahan berikut dalam baris arahan:

thrift --gen go calculator.thrift<🎜. >

Arahan ini Folder gen-go akan dijana dalam direktori semasa, yang mengandungi fail bahasa Go yang dijana oleh fail calculator.thrift.

Buat perkhidmatan Jimat

Dalam Beego, kami boleh menggunakan Thrift untuk mencipta perkhidmatan dan melaksanakan kaedah dalam fail antara muka.

import (
    "git.apache.org/thrift.git/lib/go/thrift"
    "xxxx/thrift/gen-go/calculator"
)

func thriftServer() {

    addr := beego.AppConfig.String("thrift::Addr")

    socket, err := thrift.NewTServerSocket(addr)
    if err != nil {
        panic(err)
    }

    handler := new(calculator.CalculatorHandler)
    processor := calculator.NewCalculatorProcessor(handler)

    server := thrift.NewTSimpleServer4(processor, socket, transportFactory, protocolFactory)
    server.Serve()
}
Salin selepas log masuk

Dalam kod di atas, kami mula-mula mendapatkan alamat yang sepadan dengan jimat dari fail konfigurasi, gunakan NewCalculatorProcessor untuk merangkum proksi perkhidmatan dalam kod yang dijana oleh alat jimat cermat dan bungkusnya melalui kaedah Thrift.NewTSimpleServer4 Menjadi pelayan untuk memantau.

Mulakan perkhidmatan

Kami boleh mencipta pelayan Thrift melalui goroutine dalam main.go Beego dan memantaunya:

func main() {
    go thriftServer()
    beego.Run()
}
Salin selepas log masuk
3. Kelebihan dan senario Thrift yang berkenaan

Menggunakan Thrift untuk pengurusan perkhidmatan mempunyai kelebihan berikut:

    Cross-language - Thrift direka untuk mengendalikan komunikasi antara program yang berbeza (walaupun dalam bahasa yang berbeza)
  1. Mudah diselenggara - boleh menjana kod secara automatik, tidak perlu menulis banyak kod lapisan penghantaran rangkaian secara manual
  2. Prestasi tinggi - Jimat menggunakan format binari untuk penghantaran rangkaian, yang menjimatkan lebar jalur dan juga boleh dimampatkan Teknologi meningkatkan lagi kecekapan
  3. Pelbagai kaedah pelaksanaan - Jimat adalah serupa dengan rangka kerja RPC yang lain Terdapat pelaksanaan klien dan pelayan yang sepadan seperti C++, Java, Python, dsb., dan ia tidak terhad kepada Java dan medan lain
Thrift sesuai untuk senario berikut:

    Aplikasi teragih - Thrift boleh memudahkan panggilan perkhidmatan merentas bahasa dan sesuai untuk pembangunan aplikasi teragih
  1. Sebenar- perkhidmatan masa - Jimat adalah berdasarkan protokol TCP/IP, yang lebih cekap dalam memproses permintaan dan respons dan sesuai untuk senario yang berkaitan dengan perkhidmatan masa nyata
  2. Penghadan kos penghantaran yang tinggi - diterima pakai oleh Thrift Binary penghantaran format menjadikan kos penghantaran agak rendah dan boleh mengurangkan penggunaan lebar jalur secara berkesan
4. Ringkasan

Menggunakan Thrift untuk pengurusan perkhidmatan di Beego sangat memudahkan pembangun Kerja merealisasikan panggilan perkhidmatan merentas bahasa dan mengurangkan kos penyelenggaraan keseluruhan sistem. Pada masa yang sama, Thrift, sebagai rangka kerja penghantaran data merentas bahasa, adalah lebih biasa apabila melaksanakan aplikasi yang benar-benar diedarkan dan perkhidmatan Masa Nyata Oleh itu, kami boleh belajar untuk menguasai Thrift untuk pembangunan perkhidmatan dan mengembangkan pokok kemahiran kami.

Atas ialah kandungan terperinci Menggunakan Thrift untuk tadbir urus perkhidmatan di Beego. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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