รูปแบบการเร우ทของ RabbitMQ เบื้องต้นคล้ายกับรูปแบบการตีรางส่ง/สับสะงุ่, แต่ความแตกต่างคือรูปแบบการตีรางส่ง/สับสะงุ่จะส่งข้อความถึงคิวทั้งหมดที่ผูกกับมันในขณะที่รูปแบบการเรูทจะส่งข้อความไปยังคิวโดยขึ้นอยู่กับการตีรางส่งข้อความ.
เมื่อพิจารณาจากมุมมองของการเขียนโค้ดเฉพาะ, ความแตกต่างระหว่างรูปแบบการเรูทและรูปแบบการตีรางส่ง/สับสะงุ่อยู่ที่ประเภทของเอ็กซ์เชนจ์ที่ใช้ รูปแบบการเรูทใช้ประเภท Direct.
แผนภาพสถาปัย
คำอธิบาย:
- P แทนโปรดิวเซอร์, C1 และ C2 แทนผู้บริโภค, กล่่(ก้อน)สีแดงแทนคิว, และ X แทนเอ็กซ์เชนจ์
- ประเภทเอ็กซ์เชนจ์คือ direct
- ตรรกะของการส่งข้อความของเอ็กซ์เชนจ์แบบ direct: เปรียบเทียบคีย์ของการเรูทในข้อความกับคีย์ของการเรูทที่เกี่ยวข้องกับการผูกกับเอ็กซ์เชนจ์นี้ทั้งหมด หากเท่ากัน ข้อความนี้จะถูกส่งไปยังคิวที่เกี่ยวข้องกับการผูก
ตัวอย่างเช่น, ในแผนภาพด้านบน: คีย์การเรูทสำหรับคิว Q1 คือสีส้่น, และคีย์การเรูทสำหรับคิว Q2 คือสีดำและเขียว ขณะส่งข้อความ, หากคีย์การเรูทของข้อความคือสีส้่น, มันจะถูกส่งไปยังคิว Q1, และหากคีย์การเรูทของข้อความคือสีดำหรือเขียว, มันจะถูกส่งไปยังคิว Q2.
การใช้งาน
รูปแบบการเรูทเป็นการขยายของรูปแบบการตีรางส่ง/สับสะงุ่, ดังนั้นการใช้งานคล้ายกับรูปแบบการตีรางส่ง/สับสะงุ่, แต่ด้วยความแตกต่างที่สามารถตั้งเงื่อนไขการสับสะงุ่ข้อความได้.
ตัวอย่างเช่น: ในเว็บไซต์การค้าอีเล็กทรอนิกส์, มีโกดำสินค้าทั้งหมดที่ต้องการจัดเก็บในยุคกที่กำลังเหมืองขัง ทะทุ่กรกขณะมีการสั่้งซื้อ, โกดู่กที่ใกล้ที่สุดจะรับผิรช่จัดส่ง.
หลังจากผู้ใช้งานลย่นัส่งคำสั่้งซื้อและมีข้อความคำสั่้งซื้อที่สร้างขึ้น, เราต้องการส่งข้อความไปยังระบบจัดเก็บโกดำในย่แถบถ่ึงภูมิภาคที่เกี่ยงกัด, และสามารถทำได้โดยใช้รูปแบบการเรูท.
การผูกคีย์การเรูทสำหรับคิวการส่งข้อความของโกดำ ของระบบจัดเก็บโกดำในย่แถบถ่ึงได้ดังนี้:
- ย่ทงกกำฉั่ำย่ระว่็้ิทงก่าทงก › east
- ก่ั๊งจงกหัดง์ีักด็ง › north
- ย่งกกั็ีทพั › south
- ตะงกใอกด็ง์ะท › west
หลังจากผู้ใช้งานลย่นัส่งคำสั่้งซื้อ, กำหดส่ายระบายตำรหะวางู้ยูผู้ใส้อยู่กี้ง, คำนวณคีย์การเรูท, แล้วส่งข้อความคำสั่้งซื้อผู้ใช้งานบายคีย์การเรูท. เอ็็็็็็็็ Find the cat. Phew! ะงะวางู้ยูalone. The RabbitMQ direct exchange will forward it to the corresponding queue.