


Dari kemasukan kepada kemahiran: Menguasai rangka kerja go-zero
Go-zero ialah rangka kerja bahasa Go yang sangat baik yang menyediakan set penyelesaian lengkap, termasuk RPC, caching, tugas berjadual dan fungsi lain. Sebenarnya, sangat mudah untuk membina perkhidmatan berprestasi tinggi menggunakan go-zero, malah anda boleh pergi dari pemula kepada mahir dalam beberapa jam.
Artikel ini bertujuan untuk memperkenalkan proses membina perkhidmatan berprestasi tinggi menggunakan rangka kerja go-zero dan membantu pembaca memahami dengan cepat konsep teras rangka kerja tersebut.
1. Pemasangan dan konfigurasi
Sebelum mula menggunakan go-zero, kami perlu memasangnya dan mengkonfigurasi beberapa persekitaran yang diperlukan.
1. Pemasangan
Memasang go-zero adalah sangat mudah, cuma jalankan arahan berikut:
$ go get -u github.com/tal-tech/go-zero
Ini akan memuat turun versi terbaharu go-zero daripada GitHub . Walau bagaimanapun, perlu diingatkan bahawa disyorkan untuk menggunakan Go 1.13 dan ke atas.
2. Konfigurasi
Sebelum menggunakan go-zero, kita perlu mengkonfigurasi beberapa persekitaran yang diperlukan untuknya. Khususnya, kita perlu memasang alat baris arahan goctl untuk menggunakan go-zero untuk mencipta perkhidmatan.
$ GO111MODULE=on go get -u github.com/tal-tech/go-zero/tools/goctl
3. Cipta projek
Seterusnya, kita perlu menggunakan goctl untuk mencipta projek baharu. Kami menganggap bahawa projek itu dinamakan blog dan boleh dibuat dengan arahan berikut:
$ mkdir blog $ cd blog $ go mod init blog $ goctl api new blog
Perintah di atas akan mencipta projek API baharu dan menjana beberapa fail dan direktori yang diperlukan.
2. Buat perkhidmatan
Seterusnya, kita boleh menggunakan go-zero untuk mencipta perkhidmatan baharu. Kami menganggap bahawa nama perkhidmatan ialah perkhidmatan pengguna, yang boleh dibuat melalui langkah berikut:
1 Jana perkhidmatan
Gunakan goctl untuk menjana kod perkhidmatan perkhidmatan pengguna: <🎜. >
$ goctl api go -api user.api -dir .
package handler import ( "net/http" "github.com/tal-tech/go-zero/rest/httpx" "blog/service/user/api/internal/logic" "blog/service/user/api/internal/svc" ) func userHandler(ctx *svc.ServiceContext) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { req, err := httpx.NewRequest(r) if err != nil { httpx.WriteError(w, err) return } l := logic.NewUserLogic(r.Context(), ctx) resp, err := l.GetUser(req) if err != nil { httpx.WriteError(w, err) return } httpx.WriteJson(w, resp) } }
func (s *Service) InitHandlers() { s.UserHandler = http.HandlerFunc(handler.UserHandler(s.Context)) }
$ goctl api template -o app.go
$ goctl model mysql datasource "root:123456@tcp(127.0.0.1:3306)/test" -table user -dir .
package logic import ( "context" "github.com/tal-tech/go-zero/core/logx" "github.com/tal-tech/go-zero/core/stores/sqlx" "blog/service/user/model" "blog/service/user/api/internal/svc" "blog/service/user/api/internal/types" ) type UserLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewUserLogic(ctx context.Context, svcCtx *svc.ServiceContext) UserLogic { return UserLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } func (l *UserLogic) GetUser(req types.GetUserRequest) (*types.GetUserResponse, error) { //Todo }
rreee
Kemudian. , dalam Untuk menggunakan kod etcd, gunakan fungsi clientv3.New untuk mencipta klien etcd baharu.[etcd] host = "localhost:2379"
import ( "go.etcd.io/etcd/clientv3" ) client, err := clientv3.New(clientv3.Config{ Endpoints: []string{"localhost:2379"}, DialTimeout: 5 * time.Second, }) if err != nil { panic(err) }
[redis] host = "localhost:6379" password = "" db = 0
要使用ZooKeeper,我们需要在配置文件中添加以下信息:
[zookeeper] host = "localhost:2181"
然后,在要使用ZooKeeper的代码中,使用zk.Connect函数创建一个新的ZooKeeper客户端。
import ( "github.com/samuel/go-zookeeper/zk" "time" ) conn, _, err := zk.Connect([]string{"localhost:2181"}, time.Second*5) if err != nil { panic(err) }
上述代码将创建一个名为conn的ZooKeeper客户端,它将使用localhost:2181作为ZooKeeper服务器的地址。
五、总结
到目前为止,我们已经深入了解了go-zero框架,并学到了如何使用它来构建高性能服务。
总结一下,要使用go-zero,请先安装和配置相关环境,然后创建一个新的项目,通过goctl命令行工具自动生成模板代码和配置文件。
接着,可以使用go-zero提供的各种功能和服务来逐步完善和扩展我们的应用程序,如集成数据库、ETCD、Redis等。
将go-zero框架用于您的下一个项目吧,它将使您能够构建出更加灵活、高效和可靠的服务!
Atas ialah kandungan terperinci Dari kemasukan kepada kemahiran: Menguasai rangka kerja go-zero. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kimi: Hanya dalam satu ayat, dalam sepuluh saat sahaja, PPT akan siap. PPT sangat menjengkelkan! Untuk mengadakan mesyuarat, anda perlu mempunyai PPT; untuk menulis laporan mingguan, anda perlu mempunyai PPT untuk membuat pelaburan, anda perlu menunjukkan PPT walaupun anda menuduh seseorang menipu, anda perlu menghantar PPT. Kolej lebih seperti belajar jurusan PPT Anda menonton PPT di dalam kelas dan melakukan PPT selepas kelas. Mungkin, apabila Dennis Austin mencipta PPT 37 tahun lalu, dia tidak menyangka satu hari nanti PPT akan berleluasa. Bercakap tentang pengalaman sukar kami membuat PPT membuatkan kami menitiskan air mata. "Ia mengambil masa tiga bulan untuk membuat PPT lebih daripada 20 muka surat, dan saya menyemaknya berpuluh-puluh kali. Saya rasa ingin muntah apabila saya melihat PPT itu." ialah PPT." Jika anda mengadakan mesyuarat dadakan, anda harus melakukannya

Pada awal pagi 20 Jun, waktu Beijing, CVPR2024, persidangan penglihatan komputer antarabangsa teratas yang diadakan di Seattle, secara rasmi mengumumkan kertas kerja terbaik dan anugerah lain. Pada tahun ini, sebanyak 10 kertas memenangi anugerah, termasuk 2 kertas terbaik dan 2 kertas pelajar terbaik Selain itu, terdapat 2 pencalonan kertas terbaik dan 4 pencalonan kertas pelajar terbaik. Persidangan teratas dalam bidang visi komputer (CV) ialah CVPR, yang menarik sejumlah besar institusi penyelidikan dan universiti setiap tahun. Mengikut statistik, sebanyak 11,532 kertas telah diserahkan tahun ini, 2,719 daripadanya diterima, dengan kadar penerimaan 23.6%. Menurut analisis statistik data CVPR2024 Institut Teknologi Georgia, dari perspektif topik penyelidikan, bilangan kertas terbesar ialah sintesis dan penjanaan imej dan video (Imageandvideosyn

Kami tahu bahawa LLM dilatih pada kelompok komputer berskala besar menggunakan data besar-besaran Tapak ini telah memperkenalkan banyak kaedah dan teknologi yang digunakan untuk membantu dan menambah baik proses latihan LLM. Hari ini, perkara yang ingin kami kongsikan ialah artikel yang mendalami teknologi asas dan memperkenalkan cara menukar sekumpulan "logam kosong" tanpa sistem pengendalian pun menjadi gugusan komputer untuk latihan LLM. Artikel ini datang daripada Imbue, sebuah permulaan AI yang berusaha untuk mencapai kecerdasan am dengan memahami cara mesin berfikir. Sudah tentu, mengubah sekumpulan "logam kosong" tanpa sistem pengendalian menjadi gugusan komputer untuk latihan LLM bukanlah proses yang mudah, penuh dengan penerokaan dan percubaan dan kesilapan, tetapi Imbue akhirnya berjaya melatih LLM dengan 70 bilion parameter proses terkumpul

Editor Laporan Kuasa Mesin: Yang Wen Gelombang kecerdasan buatan yang diwakili oleh model besar dan AIGC telah mengubah cara kita hidup dan bekerja secara senyap-senyap, tetapi kebanyakan orang masih tidak tahu cara menggunakannya. Oleh itu, kami telah melancarkan lajur "AI dalam Penggunaan" untuk memperkenalkan secara terperinci cara menggunakan AI melalui kes penggunaan kecerdasan buatan yang intuitif, menarik dan padat serta merangsang pemikiran semua orang. Kami juga mengalu-alukan pembaca untuk menyerahkan kes penggunaan yang inovatif dan praktikal. Pautan video: https://mp.weixin.qq.com/s/2hX_i7li3RqdE4u016yGhQ Baru-baru ini, vlog kehidupan seorang gadis yang tinggal bersendirian menjadi popular di Xiaohongshu. Animasi gaya ilustrasi, ditambah dengan beberapa perkataan penyembuhan, boleh diambil dengan mudah dalam beberapa hari sahaja.

Retrieval-augmented generation (RAG) ialah teknik yang menggunakan perolehan semula untuk meningkatkan model bahasa. Secara khusus, sebelum model bahasa menjana jawapan, ia mendapatkan semula maklumat yang berkaitan daripada pangkalan data dokumen yang luas dan kemudian menggunakan maklumat ini untuk membimbing proses penjanaan. Teknologi ini boleh meningkatkan ketepatan dan perkaitan kandungan dengan banyak, mengurangkan masalah halusinasi dengan berkesan, meningkatkan kelajuan kemas kini pengetahuan, dan meningkatkan kebolehkesanan penjanaan kandungan. RAG sudah pasti salah satu bidang penyelidikan kecerdasan buatan yang paling menarik. Untuk butiran lanjut tentang RAG, sila rujuk artikel lajur di tapak ini "Apakah perkembangan baharu dalam RAG, yang pakar dalam menebus kekurangan model besar?" Ulasan ini menerangkannya dengan jelas." Tetapi RAG tidak sempurna, dan pengguna sering menghadapi beberapa "titik kesakitan" apabila menggunakannya. Baru-baru ini, penyelesaian AI generatif termaju NVIDIA

Menilai kos/prestasi sokongan komersial untuk rangka kerja Java melibatkan langkah-langkah berikut: Tentukan tahap jaminan yang diperlukan dan jaminan perjanjian tahap perkhidmatan (SLA). Pengalaman dan kepakaran pasukan sokongan penyelidikan. Pertimbangkan perkhidmatan tambahan seperti peningkatan, penyelesaian masalah dan pengoptimuman prestasi. Timbang kos sokongan perniagaan terhadap pengurangan risiko dan peningkatan kecekapan.

Apabila Sora gagal keluar, lawan OpenAI menggunakan senjata mereka untuk memusnahkan jalanan. Jika Sora tidak dibuka untuk digunakan, ia benar-benar akan dicuri! Hari ini, LumaAI pemula San Francisco memainkan kad truf dan melancarkan generasi baharu model penjanaan video AI DreamMachine. Percuma dan tersedia untuk semua orang. Menurut laporan, model itu boleh menghasilkan video realistik berkualiti tinggi berdasarkan penerangan teks ringkas, dengan kesan yang setanding dengan Sora. Sebaik sahaja berita itu keluar, sebilangan besar pengguna menyerbu ke laman web rasmi untuk mencubanya. Walaupun pegawai mendakwa model itu boleh menjana video 120 bingkai dalam masa dua minit sahaja, ramai pengguna telah menunggu berjam-jam di laman web rasmi berikutan lonjakan kunjungan. BarkleyDai, ketua pertumbuhan produk Luma, terpaksa mengulas mengenai Discord

Keluk pembelajaran rangka kerja PHP bergantung pada kecekapan bahasa, kerumitan rangka kerja, kualiti dokumentasi dan sokongan komuniti. Keluk pembelajaran rangka kerja PHP adalah lebih tinggi jika dibandingkan dengan rangka kerja Python dan lebih rendah jika dibandingkan dengan rangka kerja Ruby. Berbanding dengan rangka kerja Java, rangka kerja PHP mempunyai keluk pembelajaran yang sederhana tetapi masa yang lebih singkat untuk bermula.
