Dengan perkembangan berterusan teknologi Internet, semakin banyak perusahaan dan pembangun mula beralih kepada seni bina perkhidmatan mikro. Berbanding dengan seni bina aplikasi monolitik tradisional, seni bina perkhidmatan mikro mempunyai kebolehskalaan, kebolehselenggaraan dan toleransi kesalahan yang lebih tinggi, dan boleh meningkatkan kecekapan pembangunan dan kestabilan sistem.
Sebagai bahasa pembangunan bahagian belakang yang sangat popular sejak beberapa tahun kebelakangan ini, bahasa Go digemari oleh semakin ramai orang kerana kecekapan tinggi, ringan, kebolehskalaan dan keselarasannya.
Oleh itu, artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk membina seni bina perkhidmatan mikro dan menggunakan rangka kerja GoMicroservices untuk amalan pembangunan.
1. Pengenalan kepada Microservices Architecture
Microservices architecture ialah gaya seni bina yang bertujuan untuk membina satu aplikasi sebagai satu set perkhidmatan kecil. Setiap perkhidmatan berjalan dalam proses bebasnya sendiri dan berkomunikasi menggunakan mekanisme ringan (biasanya API HTTP). Perkhidmatan ini dibina berdasarkan keupayaan perniagaan dan digunakan mengikut keperluan melalui mekanisme penggunaan automatik sepenuhnya. Perkhidmatan ini boleh ditulis dalam bahasa pengaturcaraan yang berbeza dan menggunakan teknologi penyimpanan data yang berbeza.
Kelebihan seni bina perkhidmatan mikro ialah:
- Mudah diselenggara dan dikembangkan: Setiap perkhidmatan adalah bebas dan boleh dikembangkan atau dipadamkan mengikut keperluan. Tanpa melibatkan pembinaan semula keseluruhan aplikasi.
- Ketersediaan Tinggi: Perkhidmatan adalah bebas, jika satu perkhidmatan ranap, perkhidmatan lain masih boleh berjalan seperti biasa.
- Fleksibiliti: Menggunakan susunan teknologi yang berbeza untuk pembangunan, setiap perkhidmatan boleh memilih penyelesaian teknologi yang sesuai mengikut keperluannya sendiri.
- Kolaborasi pasukan yang lebih baik: Memandangkan setiap perkhidmatan adalah bebas, pasukan boleh membahagikan kerja dan bekerjasama dengan lebih baik, dan setiap pasukan boleh menumpukan pada pembangunan dan penyelenggaraan salah satu perkhidmatan.
2. Pembinaan seni bina perkhidmatan mikro dalam bahasa Go
Untuk membina seni bina perkhidmatan mikro dalam bahasa Go, anda perlu mengikuti langkah berikut:
- Tentukan perkhidmatan: Mengikut keperluan perniagaan, bahagikan keseluruhan aplikasi kepada beberapa perkhidmatan kecil .
- Tulis kod perkhidmatan: Gunakan bahasa Go untuk menulis logik perkhidmatan Setiap perkhidmatan seharusnya boleh berjalan secara bebas dan menyediakan antara muka API.
- Menggunakan perkhidmatan: Setiap perkhidmatan harus boleh digunakan secara bebas dan boleh dikembangkan atau dialih keluar.
- Perkhidmatan sambungan: Perkhidmatan yang berbeza perlu berkomunikasi antara satu sama lain dan boleh menggunakan protokol seperti HTTP atau RPC untuk berkomunikasi.
Dalam pembangunan sebenar, untuk mengurus dan mengekalkan pelbagai perkhidmatan dengan lebih baik, kami boleh menggunakan rangka kerja GoMicroservices untuk pembangunan. GoMicroservices ialah rangka kerja mikroperkhidmatan sumber terbuka yang menyediakan API yang ringkas dan mudah digunakan untuk mencipta dan menggunakan perkhidmatan mikro dengan cepat.
3. Gunakan rangka kerja GoMicroservices untuk melaksanakan perkhidmatan mikro
Apabila menggunakan rangka kerja GoMicroservices untuk melaksanakan perkhidmatan mikro, anda perlu mengikuti langkah berikut:
- Pasang rangka kerja GoMicroservices
Run arahan berikut
rangka kerja GoMicroservices:
$ go get github.com/micro/micro/v3
Salin selepas log masuk
Buat Perkhidmatan
Jalankan arahan berikut untuk mencipta perkhidmatan baharu:
$ micro new helloworld
Salin selepas log masuk
Perintah ini akan mencipta perkhidmatan baharu bernama "helloworld" dalam direktori semasa. Dalam perkhidmatan ini, kami boleh menentukan maklumat seperti nama perkhidmatan, port, antara muka perkhidmatan dan logik pelaksanaan.
Melaksanakan logik perkhidmatan
Dalam perkhidmatan "helloworld", kita boleh melaksanakan logik perkhidmatan mengikut keperluan. Sebagai contoh, kita boleh mencipta antara muka "penyambut" untuk mengendalikan permintaan, kodnya adalah seperti berikut:
type Greeter struct{}
func (g *Greeter) Hello(ctx context.Context, req *api.HelloRequest, rsp *api.HelloResponse) error {
rsp.Msg = "Hello " + req.Name
return nil
}
Salin selepas log masuk
Dalam kod ini, kami mencipta struktur Penyambut dan melaksanakan fungsi Hello. Fungsi Hello menerima permintaan dan mengembalikan respons yang mengandungi ucapan.
Kompil dan jalankan perkhidmatan
Kompil dan mulakan perkhidmatan menggunakan arahan berikut:
$ make build
$ ./helloworld serve
Salin selepas log masuk
Sambungkan perkhidmatan
Dalam perkhidmatan lain, kami boleh menyambung ke perkhidmatan "helloworld" menggunakan kod berikut:
service := micro.NewService(micro.Name("greeter.client"))
service.Init()
greeter := api.NewGreeterService("helloworld", service.Client())
rsp, err := greeter.Hello(context.TODO(), &api.HelloRequest{
Name: "John",
})
Salin selepas log masuk
Di sini Dalam coretan kod, kami mencipta perkhidmatan baharu bernama "greeter.client" dan menggunakan fungsi NewGreeterService untuk mencipta pelanggan yang disambungkan ke perkhidmatan "helloworld". Akhir sekali, kami menggunakan fungsi Hello untuk menghantar permintaan kepada perkhidmatan dan mendapatkan respons.
Melalui langkah di atas, kami boleh menggunakan rangka kerja GoMicroservices untuk membina aplikasi perkhidmatan mikro dengan cepat dan melaksanakan komunikasi antara perkhidmatan.
Kesimpulan
Dengan evolusi berterusan teknologi Internet, seni bina perkhidmatan mikro telah menjadi pilihan popular untuk perusahaan dan pembangun sejak beberapa tahun kebelakangan ini. Sebagai bahasa back-end dengan ciri-ciri kecekapan, ringan, kebolehskalaan dan konkurensi, bahasa Go juga telah menjadi pilihan pertama banyak pembangun.
Dalam artikel ini, kami menerangkan cara menggunakan bahasa Go untuk membina aplikasi perkhidmatan mikro dan menggunakan rangka kerja GoMicroservices untuk amalan pembangunan. Saya harap artikel ini dapat memberikan bantuan dan inspirasi kepada semua orang untuk mempelajari amalan seni bina perkhidmatan mikro.
Atas ialah kandungan terperinci Daripada bahasa Go kepada GoMicroservices: mempelajari amalan perkhidmatan mikro. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!