pemajuan http golang

王林
王林asal
2023-05-19 09:03:37701semak imbas

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!

Kenyataan:
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
Artikel sebelumnya:api penukaran golangArtikel seterusnya:api penukaran golang