Rumah pembangunan bahagian belakang Golang Menggunakan Thrift untuk tadbir urus perkhidmatan di Beego

Menggunakan Thrift untuk tadbir urus perkhidmatan di Beego

Jun 22, 2023 pm 10:09 PM
Tadbir urus perkhidmatan beego thrift

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Menggunakan Prometheus dan Grafana untuk melaksanakan pemantauan dan membimbangkan di Beego Menggunakan Prometheus dan Grafana untuk melaksanakan pemantauan dan membimbangkan di Beego Jun 22, 2023 am 09:06 AM

Dengan peningkatan pengkomputeran awan dan perkhidmatan mikro, kerumitan aplikasi telah meningkat. Oleh itu, pemantauan dan diagnostik menjadi salah satu tugas pembangunan yang penting. Dalam hal ini, Prometheus dan Grafana ialah dua alat pemantauan dan visualisasi sumber terbuka yang popular yang boleh membantu pembangun memantau dan menganalisis aplikasi dengan lebih baik. Artikel ini akan meneroka cara menggunakan Prometheus dan Grafana untuk melaksanakan pemantauan dan membimbangkan dalam rangka kerja Beego. 1. Pengenalan Beego ialah aplikasi web pembangunan pesat sumber terbuka.

Gunakan Analitis Google untuk mengira data tapak web dalam Beego Gunakan Analitis Google untuk mengira data tapak web dalam Beego Jun 22, 2023 am 09:19 AM

Dengan perkembangan pesat Internet, penggunaan aplikasi Web menjadi semakin biasa Bagaimana untuk memantau dan menganalisis penggunaan aplikasi Web telah menjadi tumpuan pembangun dan pengendali laman web. Google Analytics ialah alat analitis tapak web yang berkuasa yang boleh menjejak dan menganalisis tingkah laku pelawat tapak web. Artikel ini akan memperkenalkan cara menggunakan Google Analitis dalam Beego untuk mengumpul data tapak web. 1. Untuk mendaftar akaun Google Analitis, anda perlu terlebih dahulu

Menggunakan ZooKeeper dan Kurator untuk penyelarasan dan pengurusan yang diedarkan di Beego Menggunakan ZooKeeper dan Kurator untuk penyelarasan dan pengurusan yang diedarkan di Beego Jun 22, 2023 pm 09:27 PM

Dengan perkembangan pesat Internet, sistem teragih telah menjadi salah satu infrastruktur dalam banyak perusahaan dan organisasi. Untuk sistem teragih berfungsi dengan baik, ia perlu diselaraskan dan diuruskan. Dalam hal ini, ZooKeeper dan Curator ialah dua alat yang patut digunakan. ZooKeeper ialah perkhidmatan penyelarasan teragih yang sangat popular yang boleh membantu kami menyelaraskan status dan data antara nod dalam kelompok. Kurator ialah enkapsulasi ZooKeeper

Ralat pengendalian dalam Beego - menghalang ranap aplikasi Ralat pengendalian dalam Beego - menghalang ranap aplikasi Jun 22, 2023 am 11:50 AM

Dalam rangka kerja Beego, pengendalian ralat adalah bahagian yang sangat penting, kerana jika aplikasi tidak mempunyai mekanisme pengendalian ralat yang betul dan lengkap, ia boleh menyebabkan aplikasi itu ranap atau tidak berjalan dengan betul, iaitu untuk projek dan pengguna kami masalah yang sangat serius. Rangka kerja Beego menyediakan satu siri mekanisme untuk membantu kami mengelakkan masalah ini dan menjadikan kod kami lebih teguh dan boleh diselenggara. Dalam artikel ini, kami akan memperkenalkan mekanisme pengendalian ralat dalam rangka kerja Beego dan membincangkan cara ia boleh membantu kami mengelakkan

Menggunakan JWT untuk melaksanakan pengesahan dalam Beego Menggunakan JWT untuk melaksanakan pengesahan dalam Beego Jun 22, 2023 pm 12:44 PM

Dengan perkembangan pesat Internet dan Internet mudah alih, semakin banyak aplikasi memerlukan pengesahan dan kawalan kebenaran, dan JWT (JSON Web Token), sebagai mekanisme pengesahan dan kebenaran yang ringan, digunakan secara meluas dalam aplikasi WEB. Beego ialah rangka kerja MVC berdasarkan bahasa Go, yang mempunyai kelebihan kecekapan, kesederhanaan dan skalabiliti Artikel ini akan memperkenalkan cara menggunakan JWT untuk melaksanakan pengesahan dalam Beego. 1. Pengenalan kepada JWT JSONWebToken (JWT) ialah a

Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Jan 30, 2024 am 09:08 AM

Dalam era perkembangan teknologi yang pesat hari ini, bahasa pengaturcaraan bermunculan seperti cendawan selepas hujan. Salah satu bahasa yang telah menarik perhatian ramai ialah bahasa Go, yang digemari oleh ramai pembangun kerana kesederhanaan, kecekapan, keselamatan serentak dan ciri-ciri lain. Bahasa Go terkenal dengan ekosistemnya yang kukuh dengan banyak projek sumber terbuka yang sangat baik. Artikel ini akan memperkenalkan lima projek sumber terbuka bahasa Go yang dipilih dan membawa pembaca untuk meneroka dunia projek sumber terbuka bahasa Go. KubernetesKubernetes ialah enjin orkestrasi kontena sumber terbuka untuk automatik

Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego Jun 23, 2023 am 08:58 AM

Dengan perkembangan pesat Internet, semakin banyak perusahaan telah mula memindahkan aplikasi mereka ke platform awan. Docker dan Kubernetes telah menjadi dua alat yang sangat popular dan berkuasa untuk penggunaan dan pengurusan aplikasi pada platform awan. Beego ialah rangka kerja Web yang dibangunkan menggunakan Golang Ia menyediakan fungsi yang kaya seperti penghalaan HTTP, lapisan MVC, pengelogan, pengurusan konfigurasi dan pengurusan Sesi. Dalam artikel ini kami akan membincangkan cara menggunakan Docker dan Kub

Menggunakan Hadoop dan HBase dalam Beego untuk penyimpanan data besar dan pertanyaan Menggunakan Hadoop dan HBase dalam Beego untuk penyimpanan data besar dan pertanyaan Jun 22, 2023 am 10:21 AM

Dengan kemunculan era data besar, pemprosesan dan penyimpanan data menjadi semakin penting, dan cara mengurus dan menganalisis sejumlah besar data dengan cekap telah menjadi cabaran bagi perusahaan. Hadoop dan HBase, dua projek Yayasan Apache, menyediakan penyelesaian untuk penyimpanan dan analisis data besar. Artikel ini akan memperkenalkan cara menggunakan Hadoop dan HBase dalam Beego untuk storan dan pertanyaan data besar. 1. Pengenalan kepada Hadoop dan HBase Hadoop ialah sistem storan dan pengkomputeran teragih sumber terbuka yang boleh

See all articles