การสื่อสาร แบบซิงโครนัส จะบล็อกผู้เรียกจนกว่าจะได้รับการตอบสนอง การสื่อสาร แบบอะซิงโครนัส จะส่งข้อความแล้วดำเนินการต่อโดยไม่รอ แต่ละประเภทมีการแลกเปลี่ยนที่แตกต่างกันในด้านการเชื่อมต่อ ความล่าช้า และความยืดหยุ่น
การสื่อสาร แบบซิงโครนัส จะบล็อกผู้เรียกจนกว่าจะได้รับการตอบสนอง การสื่อสาร แบบอะซิงโครนัส จะส่งข้อความแล้วดำเนินการต่อโดยไม่รอ แต่ละประเภทมีการแลกเปลี่ยนที่แตกต่างกันในด้านการเชื่อมต่อ ความล่าช้า และความยืดหยุ่น
| ด้าน | ซิงโครนัส (REST/gRPC) | อะซิงโครนัส (messaging) |
|---|
| ผู้เรียกรอหรือไม่ | ใช่ | ไม่ |
| การเชื่อมต่อตามเวลา | แ빡 | หลวม |
| ความยืดหยุ่นต่อการหยุดทำงาน | ต่ำ | สูง (broker จัดเก็บข้อมูลชั่วคราว) |
| ความสม่ำเสมอ | ทันที | ในที่สุด |
| ความซับซ้อน | ต่ำกว่า | สูงกว่า |
| ความง่ายในการแก้ไขข้อบกพร่อง | ง่ายกว่า (เชิงเส้น) | ยากกว่า (ไหลวลี) |
SYNC: Caller ──request──▶ Service
Caller ◀─response── Service (blocked the whole time)
ASYNC: Caller ──message──▶ [ Queue ] ──▶ Service
Caller continues immediately; Service handles it later
อะซิงโครนัสซ่อนความล้มเหลว — ข้อความที่หายไปหรือเป็นพิษสามารถทำให้เวิร์กโฟลว์แตกได้เงียบ ๆ คุณต้องใช้คิวจดหมายที่ตายแล้วและการตรวจสอบ
การเลือกควบคุมโดยตรงว่าความล้มเหลวจะแพร่กระจายอย่างไร: การเรียกซิงโครนัสล้มเหลวอย่างรวดเร็วและเห็นได้ชัด ข้อความอะซิงโครนัสจะแยกออกจากกันแต่ส่งปัญหาให้กับผู้บริโภค
การผสมให้ดี — ซิงโครนัสที่ขอบ อะซิงโครนัสสำหรับเวิร์กโฟลว์ — เป็นทักษะหลักในการสร้าง microservices ที่ยืดหยุ่น