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"
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), }
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
<🎜. >
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() }
func main() { go thriftServer() beego.Run() }
Menggunakan Thrift untuk pengurusan perkhidmatan mempunyai kelebihan berikut:
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!