أخيرا ، حصلنا على gRPC يعمل في #dstack بعد قضاء يوم حفرة! نظرا لأن بوابة dstack يمكنها التغلب TCP التعسفي في TLS ، فقد افترضت أنها ستعمل فقط. لم يفعل.
التفاصيل الرئيسية: يعمل gRPC على HTTP / 2. يعتمد HTTP/2 عادة على ALPN (تفاوض بروتوكول طبقة التطبيق) أثناء مصافحة TLS.
فكر في ALPN على أنها اللحظة التي يتفق فيها كلا الجانبين على البروتوكول الذي يجب التحدث به (h2 ل HTTP / 2) قبل تبادل أي بيانات فعلية. إذا فشلت هذه الخطوة، يعود الاتصال إلى HTTP/1.1 - والذي لا يمكن ل gRPC استخدامه.
لكي تتعامل البوابة مع gRPC بشكل صحيح، يجب أن تقوم بما يلي: 1️⃣ دعم HTTP / 2 من طرف إلى طرف 2️⃣ تفاوض على h2 مع ALPN أثناء مصافحة TLS 3️⃣ الحفاظ على الإطارات الثنائية والمقطورات الخاصة ب gRPC تفوت أيا من هذه ، وسترى تعليقا غريبا أو أخطاء مفقودة أو تدفقات معطلة.
‏‎671‏