ในขั้นตอนของการใช้ RabbitMQ บางสถานการณ์ธุรกิจต้องการให้เรารับการบริการตามลำดับที่แน่นอน ตัวอย่างเช่น ในสถานการณ์ธุรกิจที่สร้างข้อความสามข้อความเพื่อดำเนินการเพิ่มข้อมูล แก้ไข และลบข้อมูล ถ้าการรับข้อมูลไม่ได้รับการรับรอง ลำดับการดำเนินการอาจกลายเป็นการลบ แก้ไข เพิ่ม ทำให้เกิดความสับสน

ดังที่แสดงด้านล่าง:

ปัญหาการเรียงลำดับข้อความใน RabbitMQ ต้องพิจารณาจากสาขาสามด้าน: ลำดับการส่งข้อความ ลำดับของข้อความในคิว และลำดับการบริโภคข้อความ

ลำดับการส่งข้อความ

ลำดับของการส่งข้อความที่ต้นทางของผู้ส่งข้อความไม่ได้เป็นเรื่องที่จำเป็นอย่างเข้มงวดสำหรับธุรกิจส่วนใหญ่ สำคัญไม่ว่าใครส่งข้อความก่อน ถ้าธุรกิจต้องการให้ข้อความถูกส่งตามลำดับหมายความว่าสามารถส่งเพียงหนึ่งข้อความต่อครั้งด้วยการล็อคทั่วโลกและไม่สามารถส่งข้อความพร้อมกันได้

ลำดับของข้อความในคิว

ใน RabbitMQ ข้อความจะถูกเก็บไว้ในคิวในที่สุด ภายในคิวเดียวกัน ข้อความจะถูกเรียงตามหลักแรกเข้าก่อนเข้าก่อน ซึ่งถูกรับรองโดย RabbitMQ และโดยทั่วไปไม่จำเป็นต้องกังวลเรื่องนี้สำหรับนักพัฒนา

หมายเหตุ: ลำดับของข้อความในคิวที่แตกต่างกันไม่ได้รับการรับรอง เช่น เมื่อเข้าสถานีรถไฟใต้ดิน หากคุณเข้าร่วมอยู่ในหนึ่งในสามคิว ลำดับการเข้าสถานีไม่สามารถรับการรับรองระหว่างคิวที่แตกต่างกันได้

ลำดับการบริโภคข้อความ

เมื่อพูดถึงวิธีการในการรับประกันการเรียงลำดับข้อความ โดยทั่วไปเรากล่าวถึงการเรียงลำดับที่ผู้บริโภครับข้อความ ในสถานการณ์ที่ผู้บริโภคหลายคนบริโภคข้อความจากคิวข้อความเดียวกัน โดยทั่วไปจะไม่สามารถรับประกันการเรียงลำดับข้อความได้ ตามที่แสดงในแผนภาพเปิดตัว แม้ว่าข้อความในคิวข้อความจะถูกเรียงลำดับ การบริโภคข้อความหลายคนที่บริโภคข้อความพร้อมกัน ความเร็วในการดึงข้อความ ความเร็วในการดำเนินตรรกศาสตร์ธุรกิจและข้อยกเว้นการดำเนินการที่เป็นไปได้ ทั้งหมดสามารถนำไปสู่การเรียงลำดับข้อความที่ไม่สอดคล้องกัน

ตัวอย่างเช่น: ข้อความ A, B, และ C เข้าคิวตามลำดับ ผู้บริโภค A1 ได้รับข้อความ A และผู้บริโภค B1 ได้รับข้อความ B อย่างไรก็ตามหากผู้บริโภค B1 ดำเนินการได้เร็วกว่า อาจจบก่อนผู้บริโภค A1 หรือหากผู้บริโภค A1 พบข้อผิดพลาด ทั้งสองสถานการณ์สามารถนำไปสู่การเรียงลำดับข้อความที่ไม่สอดคล้องกัน

การแก้ปัญหาการบริโภคตามลำดับที่เป็นที่นิยมคือการให้คิวมีเพียงผู้บริโภคคนเดียว อย่างนี้ข้อความสามารถประมวลผลทีละข้อความตามลำดับ ข้อเสียอยู่ที่ความสามารถในการทำงานพร้อมกันลดลงและการบริโภคข้อความพร้อมกันไม่เป็นไปได้ นี่เป็นการค้าขา

หมายเหตุ: หากธุรกิจต้องการการบริโภคตามลำดับและการทำงานพร้อมกันเพิ่มขึ้น วิธีที่สามารถทำได้คือเปิดให้มีคิวหลายช่อง ธุรกิจสามารถกระจายข้อความไปยังคิวต่างๆ โดยขึ้นอยู่กับกฎ ซึ่งทำให้ระดับการทำงานพร้อมกันเพิ่มขึ้น เช่น ในสถานการณ์การสั่งซื้อสินค้าออนไลน์ มีความจำเป็นที่จะต้องรับประกันลำดับของข้อความสำหรับผู้ใช้เดียวกัน ข้อความที่เกี่ยวข้องกับผู้ใช้ที่แตกต่างกันสามารถถูกส่งไปยังคิวที่แตกต่างกัน