มีเป้าหมายที่จะแนะนำการขนส่งและโปรโตคอลชั้นโปรแกรมที่ดีในของมันแฝงและเครือข่ายผ่าน ปัจจุบันแอปพลิเคชันใช้RESTกับHTTP / 1.1และเราพบว่ามีเวลาแฝงสูง ฉันต้องการที่จะแก้ไขปัญหาความล่าช้านี้และผมเปิดให้ใช้อย่างใดอย่างgRPC (HTTP / 2)หรือREST / HTTP2
HTTP / 2:
- มัลติเพล็กซ์
- การเชื่อมต่อ TCP เดียว
- ไบนารีแทนข้อความ
- การบีบอัดส่วนหัว
- ดันเซิร์ฟเวอร์
ฉันตระหนักถึงข้อดีทั้งหมดข้างต้น คำถามที่ 1:หากฉันใช้REST กับ HTTP / 2ฉันมั่นใจว่าฉันจะได้รับการปรับปรุงประสิทธิภาพอย่างมีนัยสำคัญเมื่อเทียบกับREST ที่มี HTTP / 1.1แต่จะเปรียบเทียบกับgRPC (HTTP / 2) ได้อย่างไร
ฉันทราบด้วยว่า gRPC ใช้โปรโตบัฟเฟอร์ซึ่งเป็นเทคนิคการจัดลำดับไบนารีที่ดีที่สุดสำหรับการส่งข้อมูลที่มีโครงสร้างบนสาย โปรโตบัฟเฟอร์ยังช่วยในการพัฒนาวิธีการไม่เชื่อเรื่องพระเจ้าทางภาษา ฉันเห็นด้วยกับสิ่งนั้นและฉันสามารถใช้คุณสมบัติเดียวกันใน REST โดยใช้ graphQL แต่ข้อกังวลของฉันอยู่ที่การทำให้เป็นอนุกรม: คำถามที่ 2:เมื่อHTTP / 2ใช้คุณสมบัติไบนารีนี้การใช้โปรโตบัฟเฟอร์จะให้ประโยชน์เพิ่มเติมจาก HTTP / 2 หรือไม่
คำถามที่ 3:ในแง่ของการสตรีมกรณีการใช้งานแบบสองทิศทาง gRPC (HTTP / 2) เปรียบเทียบกับ (REST และ HTTP / 2) อย่างไร
มีจำนวนมากดังนั้นบล็อก / วิดีโอออกในอินเทอร์เน็ตที่เปรียบเทียบ gRPC (HTTP / 2) กับ (REST และ HTTP / 1.1) เช่นนี้ ตามที่ระบุไว้ก่อนหน้านี้ฉันต้องการทราบความแตกต่างประโยชน์ของการเปรียบเทียบ GRPC (HTTP / 2) และ (REST กับ HTTP / 2)