حالت موضوعی RabbitMQ مشابه حالت مسیریابی است، اما تفاوت آن در این است که مسیریابی حالت موضوعی از تطبیق خودکار الگویی پشتیبانی میکند، در حالی که حالت مسیریابی تنها از تطبیق دقیق پشتیبانی میکند.
نمودار معماری
توضیحات:
- P نماینده تولیدکننده، X نماینده امکانات، صفهای قرمز Q1 و Q2 نشاندهنده صفوف، C1 و C2 نماینده مصرفکنندگان هستند.
- نوع امکانات موضوعی است.
- منطق انتقال پیام امکانات موضوعی: آن با استفاده از تطبیق خودکار الگویی کلید مسیریابی در پیام را با کلیدهای مرتبط با تمامی محلها انتقال از طریق تفاوت را تطبیق داده و اگر منطبق باشد، پیام را به صف باند شده ارسال میکند.
نکته: تفاوت بین حالت موضوعی و حالت مستقیم در این است که آیا تطابق کلید مسیریابی از تطبیق خودکار الگویی پشتیبانی میکند یا خیر، دیگر چیزها یکسان هستند.
الگوهای خودکاری قابل پشتیبانی توسط حالت موضوعی عبارتاند از:
-
#
(هش) برای تطبیق با یک یا چند کلمه -
*
(ستاره) برای تطبیق با تنها یک کلمه
به عنوان مثال:
کلید مسیریابی باند به صف Q1 = *.نارنجی.*
کلید مسیریابی باند به صف Q2 = *.*.خرگوش
و تنبل.#
اگر کلید مسیریابی پیام "سریع.نارنجی.خرگوش" باشد، هر دو صف Q1 و Q2 منطبق هستند.
نکته: اگر کلید مسیریابی با هیچکدام از صفوف منطبق نباشد، پیام دور انداخته خواهد شد. اگر کلید مسیریابی خالی باشد، کارایی مشابه حالت پخش و پیام را مستقیماً به تمامی صفوف ارسال میکند.
مورد استفاده
مانند حالت مسیریابی، تفاوت در انعطافپذیری شرایط اشتراک است، به طور خاص قوانین تطابق انعطافپذیرتر برای کلید مسیریابی.