Rumah > Artikel > pembangunan bahagian belakang > pemajuan http golang
Dalam aplikasi moden, jarang sekali pelayan tunggal mengendalikan semua permintaan. Selalunya berbilang pelayan digunakan untuk bekerja bersama. Ini mungkin kerana trafik terlalu besar dan terlalu banyak permintaan tidak dapat diproses, atau mungkin disebabkan oleh pemisahan logik perniagaan. Ini bermakna satu mekanisme diperlukan untuk menyelaraskan komunikasi antara pelayan.
Pemajuan HTTP ialah penyelesaian. Ia membantu memajukan permintaan dari satu pelayan ke pelayan yang lain. Ini membolehkan pengimbangan beban dan kecekapan dipertingkatkan tanpa memerlukan perubahan pada kod aplikasi sedia ada.
Dalam artikel ini, kami akan memperkenalkan cara menulis program pemajuan HTTP menggunakan bahasa Go. Kami akan mempelajari cara menggunakan pustaka standard Go untuk mendengar permintaan HTTP dan memajukannya ke pelayan huluan.
Persediaan
Untuk melaksanakan program pemajuan HTTP yang mudah, kami perlu memasang Golang. Golang ialah bahasa yang disusun, kelajuan penyusunannya sangat pantas, dan ia juga menyediakan perpustakaan standard yang kaya. Anda boleh memuat turun dan memasang Golang dengan melawati laman web rasmi Golang.
Langkah 1: Pasang kebergantungan
Apabila membangun menggunakan bahasa Go, terdapat banyak perpustakaan pihak ketiga yang tersedia untuk kami gunakan. Kita boleh menggunakan arahan baris arahan untuk memuat turun kebergantungan yang diperlukan daripada tapak cermin domestik. Ini akan mempercepatkan proses pembangunan kami. Berikut ialah arahan untuk memuat turun dependensi:
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct
Selepas melaksanakan arahan di atas, kami boleh membangunkan dengan senang hati.
Langkah 2: Buat pemaju
Kami boleh mencipta pemaju HTTP asas menggunakan kod berikut:
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { fmt.Fprintf(w, "Hello world") }) http.ListenAndServe(":8080", nil) }
Aplikasi ini mendengar semua permintaan HTTP pada port 8080. Ia menggunakan kaedah http.HandleFunc
untuk mengendalikan permintaan HTTP. Untuk sebarang permintaan, ia menulis "Hello world" dalam jawapan. Ini adalah contoh yang sangat mudah, tetapi ia boleh membantu kami memahami cara membina pelayan HTTP menggunakan bahasa Go.
Langkah 3: Majukan permintaan HTTP
Kami perlu mengubah suai kod dalam langkah sebelumnya untuk merealisasikan fungsi memajukan permintaan HTTP. Kami perlu memajukan permintaan yang diterima ke pelayan huluan. Dengan mengubah suai kaedah kami memproses permintaan, kami melaksanakan fungsi memajukan permintaan ke pelayan huluan. Berikut ialah kod yang diubah suai:
package main import ( "fmt" "net/http" "net/http/httputil" "net/url" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { proxy := httputil.NewSingleHostReverseProxy(&url.URL{ Scheme: "http", Host: "127.0.0.1:8081", }) proxy.ServeHTTP(w, req) }) http.ListenAndServe(":8080", nil) }
Dalam contoh ini, kami mencipta objek proksi menggunakan kaedah httputil.NewSingleHostReverseProxy
. Objek ini boleh memajukan permintaan HTTP ke pelayan huluan. Kami juga perlu menentukan alamat dan pelabuhan pelayan huluan (127.0.0.1:8081
). Akhir sekali, kami menggunakan kaedah proxy.ServeHTTP
untuk memajukan permintaan HTTP.
Kod dalam contoh di atas sangat ringkas dan mudah difahami. Melalui contoh ini, anda boleh belajar cara menggunakan pakej httputil
dalam pustaka standard bahasa Go untuk melaksanakan pemajuan HTTP.
Ringkasan
Dalam artikel ini, kami memperkenalkan cara menggunakan perpustakaan standard bahasa Go untuk melaksanakan pemajuan HTTP. Kami telah menyediakan contoh mudah untuk menggambarkan cara melakukan ini. Kod boleh diubah suai untuk menyesuaikan diri dengan senario perniagaan yang lebih kompleks. Sebagai bahasa pengaturcaraan yang sangat fleksibel dan berkuasa, Go boleh digunakan secara meluas dalam pembangunan web, pengkomputeran awan, pengaturcaraan rangkaian dan bidang lain. Semoga artikel ini bermanfaat kepada anda.
Atas ialah kandungan terperinci pemajuan http golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!