Communication
services แต่ละอัน คุยกันยังไง?
Last updated
services แต่ละอัน คุยกันยังไง?
Last updated
ต่างกับ Monilith ยังไง?
ปกติ Monolith จะเป็น Process หรือ Application เดียวกันอยู่เเล้ว การ Communication ของมันเลยอาจจะเป็นแค่การ Call method เรียกหากันปกติ แต่พอเป็น microservices จะต้องมีการสื่อสารกันผ่าน Network level เลย เนื่องจากเป็นคนละ Process หรือ Application กัน
การสื่อสารของ Microservices จะเป็นสองแบบ คือ
ก็คือการสื่อสารที่ blocked หรือจำเป็นต้องรอให้อีกฝ่ายตอบกลับมาก่อน ถึงจะทำงานต่อไปได้ ซึ่งข้อเสียคือมันต้องพึ่งพากับ Services อื่นๆ (ซึ่งอาจจะจำเป็น) ด้วย HTTP หรือ gRPC
ก็คือการสื่อสารที่ไม่จำเป็นต้องรอให้อีกฝ่ายตอบกลับก่อนก็ได้
คือส่งเป็น Message ไปหาระบบอื่นผ่าน Message Broker ต่างๆเป็นตัวกลาง อาจจะใช้ตัวดังๆอย่าง Kafka หรือ RabbitMQ ก็ได้ ซึ่งส่งข้อความลงไปบน Queue แล้วจะมีระบบปลายทางที่มา Subscribe หรือ Consume ของออกไปทำงาน อาจจะแบ่งได้เป็น 2 แบบ คือ One-to-one (queue) หรือ One-to-many (topic)