Adakah Go Kurang Caching DNS Onboard?
Walaupun merupakan aspek ketara dalam operasi cekap sumber dalam rangkak web, Go pada masa ini kekurangan DNS asli mencari cache. Ini menimbulkan persoalan sama ada sistem pengendalian asas termasuk sebarang kemudahan caching yang boleh dimanfaatkan oleh Go.
Memeriksa Alternatif Berpotensi
Walaupun Go tidak menyediakan caching terbina dalam, OS asas mungkin menawarkan pilihan:
Meneroka Penyelesaian Pihak Ketiga
Untuk mengimbangi kekurangan caching asli dalam Go, pertimbangkan pakej luaran seperti dnscache . Penyelesaian ini membolehkan pelaksanaan cache DNS dengan mudah, seperti yang ditunjukkan oleh coretan kod dalam readme:
http.DefaultClient.Transport = &http.Transport { MaxIdleConnsPerHost: 64, Dial: func(network string, address string) (net.Conn, error) { separator := strings.LastIndex(address, ":") ip, _ := dnscache.FetchString(address[:separator]) return net.Dial("tcp", ip + address[separator:]) }, }
Melaksanakan kod ini membolehkan caching untuk semua permintaan HTTP yang dibuat melalui fungsi seperti http.Get.
Atas ialah kandungan terperinci Adakah Kurang Caching DNS Onboard?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!