Ralat Tidak Tersedia RPC Selang-seli dalam Persediaan gRPC
Apabila menyediakan klien dan pelayan gRPC, adalah penting untuk mempertimbangkan potensi penutupan sambungan TCP secara tiba-tiba tanpa pemberitahuan yang sewajarnya kepada mana-mana pihak. Ini boleh membawa kepada ralat "pengangkutan sedang ditutup" yang terkenal.
Untuk mengelakkan isu ini, tempoh tangguh soket TCP yang mendasari boleh diurus dengan melaraskan KeepaliveParams pada pelayan. Contohnya:
grpc.NewServer( grpc.KeepaliveParams(keepalive.ServerParameters{ MaxConnectionIdle: 5 * time.Minute, // This resolves the issue }), )
Dengan menetapkan MaxConnectionIdle kepada nilai tertentu, pelayan akan menutup sambungan TCP secara proaktif sebelum kernel atau pengimbang beban perantara/proksi terbalik tamat masa. Ini memastikan penutupan yang menarik, menghalang ralat "pengangkutan sedang ditutup".
Penyelesaian ini bukan sahaja menghapuskan ralat terputus-putus tetapi juga mengurangkan kesan kebocoran sambungan pada sumber bahagian pelayan. Gabungan pengurusan sambungan proaktif dan dasar keepalive yang jelas memastikan persediaan gRPC yang boleh dipercayai dan berskala.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Ralat \'Pengangkutan Ditutup\' Bersekala dalam gRPC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!