روترهای اتصال

  • 2021-07-27

روترهای اتصال Apache ActiveMQ Artemis اجازه می‌دهند که اتصالات مشتری ورودی بین چندین کارگزار هدف توزیع شود. کارگزاران هدف در استخرها گروه بندی می شوند و روترهای اتصال از یک کلید برای انتخاب یک کارگزار هدف از مجموعه کارگزاران طبق یک خط مشی استفاده می کنند.

کارگزار هدف

کارگزار هدف کارگزاری است که می تواند اتصالات مشتری ورودی را بپذیرد و محلی یا راه دور است. هدف محلی یک هدف ویژه است که نشان دهنده همان کارگزاری است که روتر اتصال را میزبانی می کند. هدف از راه دور یکی دیگر از کارگزاران قابل دسترسی است.

روتر اتصال از یک کلید برای انتخاب یک کارگزار هدف استفاده می کند. این رشته ای است که از یک اتصال مشتری ورودی بازیابی شده است، انواع کلیدهای پشتیبانی شده عبارتند از:

  • CLIENT_ID شناسه مشتری JMS است.
  • SNI_HOST نام میزبانی است که توسط مشتری در پسوند SNI پروتکل TLS نشان داده شده است.
  • SOURCE_IP آدرس IP منبع مشتری است.
  • USER_NAME نام کاربری مشخص شده توسط مشتری است.
  • ROLE_NAME نقشی است که با کاربر تأیید شده اتصال مرتبط است.

استخرها

استخر گروهی از کارگزاران هدف است که وضعیت آنها را به صورت دوره ای بررسی می کند. فهرستی از کارگزاران هدف آماده را برای توزیع اتصالات مشتری دریافتی تنها زمانی که فعال است ارائه می کند. یک Pool زمانی فعال می شود که حداقل تعداد کارگزاران هدف، همانطور که توسط پارامتر حد نصاب تعریف شده است، آماده شوند. هنگامی که فعال نیست، هیچ هدفی برای جلوگیری از توزیع عجیب در هنگام راه اندازی یا پس از راه اندازی مجدد ارائه نمی دهد. گنجاندن کارگزار محلی در استخر هدف، به کارگزار میزبان روتر اجازه می‌دهد تا اتصالات مشتری ورودی را نیز بپذیرد. به‌طور پیش‌فرض، یک استخر شامل کارگزار محلی نمی‌شود، برای گنجاندن آن به‌عنوان هدف، پارامتر فعال‌شده با هدف محلی باید درست باشد. سه نوع استخر وجود دارد: استخر خوشه ای، استخر کشف و استخر استاتیک.

استخر خوشه

مجموعه کلاستر از یک اتصال خوشه ای برای جذب کارگزاران هدف برای افزودن استفاده می کند. بیایید نگاهی به یک نمونه کلاستر از broker. xml بیندازیم که از یک اتصال خوشه ای استفاده می کند:

استخر کشف

استخر اکتشاف از یک گروه اکتشاف برای کشف کارگزاران هدف برای افزودن استفاده می کند. بیایید نگاهی به یک مثال مخزن اکتشاف از broker. xml بیندازیم که از یک گروه کشف استفاده می کند:

استخر استاتیک

استاتیک pool از لیستی از اتصال دهنده های استاتیک برای تعریف کارگزاران هدف برای افزودن استفاده می کند. بیایید نگاهی به یک مثال استاتیک از broker. xml بیندازیم که از لیستی از اتصال دهنده های استاتیک استفاده می کند:

تعریف استخرها

یک Pool توسط عنصر pool تعریف می شود که شامل موارد زیر است:

  • عنصر نام کاربری نام کاربری را برای اتصال به کارگزار هدف تعریف می کند.
  • عنصر رمز عبور رمز عبور را برای اتصال به کارگزار هدف تعریف می کند.
  • عنصر check-period تعیین می کند که هر چند وقت یکبار کارگزار هدف را بررسی کنید، که در میلی ثانیه اندازه گیری می شود، پیش فرض 5000 است.
  • عنصر حد نصاب اندازه حداقل تعداد اهداف آماده را برای فعال کردن استخر تعریف می کند، پیش فرض 1 است.
  • عنصر Quorum-timeout مدت زمانی را برای به دست آوردن حداقل تعداد اهداف آماده تعیین می کند که در میلی ثانیه اندازه گیری می شود، پیش فرض 3000 است.
  • عنصر فعال با هدف محلی تعیین می کند که آیا استخر باید یک هدف محلی را شامل شود، پیش فرض نادرست است.
  • عنصر اتصال خوشه، اتصال خوشه ای را که توسط استخر خوشه استفاده می شود، تعریف می کند.
  • عنصر Static-connectors فهرستی از اتصال دهنده های استاتیک را که توسط استاتیک pool استفاده می شود، تعریف می کند.
  • عنصر گروه اکتشاف، گروه اکتشاف مورد استفاده توسط استخر اکتشاف را تعریف می کند.

بیایید نگاهی به یک مثال استخر از broker. xml بیندازیم:

سیاست های

این خط‌مشی نحوه انتخاب یک کارگزار از یک استخر را تعریف می‌کند و امکان تغییر مقادیر کلیدی را فراهم می‌کند. سیاست های گنجانده شده عبارتند از:

  • FIRST_ELEMENT برای انتخاب اولین کارگزار هدف از استخری که آماده است. انتخاب کارگزاران هدف آماده با توجه به اولویتی که با ترتیب توالی آنها تعریف شده است مفید است، یعنی با فرض وجود 2 کارگزار هدف، این سیاست تنها زمانی کارگزار هدف دوم را انتخاب می کند که کارگزار هدف اول آماده نباشد.
  • ROUND_ROBIN برای انتخاب یک هدف متوالی از یک استخر، این خط مشی برای توزیع یکنواخت مفید است.
  • CONSISTENT_HASH برای انتخاب یک هدف توسط یک کلید. این خط‌مشی همیشه همان کارگزار هدف را برای همان کلید انتخاب می‌کند تا زمانی که از استخر حذف شود.
  • LEAST_CONNECTIONS برای انتخاب اهداف با کمترین اتصالات فعال. این خط مشی به شما کمک می کند توزیع یکسانی از ارتباطات فعال با کارگزاران هدف را حفظ کنید.
  • CONSISTENT_HASH_MODULO برای تبدیل یک مقدار کلید به عددی از 0 به N-1، برای پیکربندی N محدود نیاز به یک ویژگی مدول واحد دارد. یکی از موارد استفاده، تقسیم CLIENT_ID در میان یک خوشه از N کارگزار است. با یک تبدیل هش % N ثابت، هر شناسه مشتری می‌تواند منحصراً به یکی از کارگزاران نگاشت شود.

یک خط مشی با عنصر سیاست تعریف می شود. بیایید به یک مثال سیاست از broker. xml نگاهی بیندازیم:

حافظه پنهان

روتر اتصال، حافظه پنهانی را با وقفه زمانی فراهم می کند تا چسبندگی کارگزار هدف انتخاب شده را بهبود بخشد، تا زمانی که در کش وجود داشته باشد و آماده باشد، همان کارگزار هدف را برای یک مقدار کلیدی برمی گرداند. بنابراین یک روتر اتصال با حافظه پنهان فعال است، به شدت از خط مشی پیکربندی شده پیروی نمی کند. به طور پیش فرض، کش فعال نیست.

یک کش توسط عنصر کش تعریف می شود که شامل موارد زیر است:

  • عنصر persisted مشخص می کند که آیا حافظه نهان باید ورودی ها را ادامه دهد، پیش فرض نادرست است.
  • عنصر مهلت زمانی را قبل از حذف ورودی ها تعیین می کند، در میلی ثانیه اندازه گیری می شود، تنظیم 0 باعث غیرفعال شدن زمان می شود، پیش فرض 0 است.

بیایید نگاهی به نمونه کش از broker. xml بیندازیم:

تعریف روترهای اتصال

یک روتر اتصال توسط عنصر اتصال-روتر تعریف می شود، شامل موارد زیر است:

  • ویژگی name نام روتر اتصال را تعریف می کند و برای ارجاع روتر از یک پذیرنده استفاده می شود.
  • عنصر نوع کلید تعیین می کند که چه نوع کلیدی برای انتخاب یک واسطه هدف، مقادیر پشتیبانی شده عبارتند از: CLIENT_ID، SNI_HOST، SOURCE_IP، USER_NAME، ROLE_NAME، پیش فرض SOURCE_IP است، برای جزئیات بیشتر به کلیدها مراجعه کنید.
  • عنصر کلید-فیلتر یک عبارت منظم را برای فیلتر کردن مقادیر کلید حل شده تعریف می کند.
  • عنصر local-target-filter یک عبارت منظم برای مطابقت با مقادیر کلیدی که باید یک هدف محلی را برگرداند تعریف می کند، مقدار کلید می تواند برابر با رشته ویژه NULL باشد اگر مقدار کلید تعریف نشده باشد یا با آن مطابقت نداشته باشد. کلید فیلتر ;
  • عنصر pool استخر را برای گروه بندی کارگزاران هدف تعریف می کند.
  • عنصر سیاست، خط مشی مورد استفاده برای انتخاب کارگزاران هدف از مجموعه را تعریف می کند، به سیاست ها مراجعه کنید.

بیایید به چند نمونه روتر اتصال از broker. xml نگاهی بیندازیم:

مقادیر کلیدی

مقدار کلید از اتصال مشتری ورودی بازیابی می شود. اگر اتصال کلاینت ورودی هیچ مقداری برای نوع کلید استفاده شده نداشته باشد، مقدار کلید روی رشته ویژه NULL تنظیم می شود. اگر اتصال کلاینت ورودی مقداری برای نوع کلید مورد استفاده داشته باشد، مقدار کلید بازیابی شده را می توان به صورت متوالی با استفاده از یک فیلتر کلید و یک خط مشی دستکاری کرد. اگر یک کلید-فیلتر تعریف شده باشد و فیلتر مطابقت نداشته باشد، مقدار روی رشته ویژه NULL تنظیم می شود. اگر خط مشی با تبدیل کلید تعریف شده باشد، مقدار کلید روی مقدار تبدیل شده تنظیم می شود.

گردش کار روتر اتصال

گردش کار روتر اتصال شامل مراحل زیر است:

  • مقدار کلید را از اتصال ورودی بازیابی کنید.
  • اگر مقدار کلید با فیلتر محلی مطابقت داشته باشد ، کارگزار هدف محلی را برگردانید.
  • نماینده استخر:
  • در صورت آماده بودن ، کارگزار هدف ذخیره شده را برگردانید.
  • کارگزاران هدف آماده/فعال را از استخر دریافت کنید.
  • با استفاده از خط مشی یک کارگزار هدف را انتخاب کنید.
  • کارگزار انتخاب شده را در حافظه نهان اضافه کنید.
  • کارگزار منتخب را برگردانید.

Connection Router Workflow

بیایید نگاهی به نمودار جریان گردش کار روتر اتصال بیاندازیم:

جاذبه داده ها

اولین پیکربندی روتر: بخش محلی ، ساده ترین مورد استفاده ، یعنی حفظ گرانش داده ها را با محدود کردن زیر مجموعه ای از داده های برنامه به یک کارگزار معین نشان می دهد. به هر کارگزار زیر مجموعه ای از کلیدها داده می شود که منحصراً خدمات یا رد می کند. اگر کارگزاران در پشت یک بولسر بار رابین دور باشند یا دانش کاملی از URL های کارگزار داشته باشند ، سرانجام کارگزار آنها پاسخ می دهد. بیان منظم-فیلتر محلی ، دانه بندی پارتیشن را تعیین می کند که برای حفظ گرانش داده برای برنامه های شما بهتر است.

چالش در ارائه یک کلید ثابت در کلیه اتصالات برنامه مربوطه است.

توجه: مفهوم گرانش داده ها سعی می کند این واقعیت را ضبط کند که در حالی که آدرس ها توسط چندین برنامه به اشتراک گذاشته می شوند ، بهتر است آدرس های مرتبط و داده های آنها را بر روی یک کارگزار واحد نگه دارید. به طور معمول ، برنامه ها باید به جای داده های منتقل شده به هر کارگزار که برنامه نیز به آن متصل می شود ، به داده ها متصل شوند. این امر به ویژه هنگامی صادق است که میزان داده ها (پس زمینه) زیاد باشد ، هزینه حرکت برای پیروی از مصرف کنندگان از هزینه تحویل به برنامه فراتر می رود. با ذهنیت "جاذبه داده" ، اپراتورها کمتر به تعداد اتصالات و بیشتر مربوط به برنامه ها و آدرس های مورد نیاز برای تعامل هستند.

تغییر مسیر

Apache ActiveMQ Artemis یک تغییر مسیر بومی را برای مشتریان پشتیبانی شده و یک API مدیریت جدید برای سایر مشتریان فراهم می کند. تغییر مسیر بومی را می توان برای هر پذیرنده فعال کرد و فقط برای مشتریان AMQP ، Core و OpenWire پشتیبانی می شود. پذیرنده با پارامتر URL روتر ، اتصالات ورودی را هدایت می کند. پارامتر URL روتر نام روتر اتصال را برای استفاده مشخص می کند ، یعنی پذیرنده زیر اتصالات مشتری اصلی ورودی را با استفاده از روتر اتصال با نام ساده روتر هدایت می کند:

دنباله تغییر مسیر بومی

مشتریانی که از تغییر مسیر بومی حمایت می کنند با تغییر مسیر فعال شده به گیرنده متصل می شوند. پذیرنده در صورت آماده بودن به مشتری ، کارگزار هدف را برای تغییر مسیر ارسال می کند و اتصال را می بندد. مشتری اگر قبل از قطع شدن یکی از آنها را دریافت کرده باشد ، به کارگزار هدف متصل می شود ، در غیر این صورت دوباره با فعال کردن تغییر مسیر به گیرنده وصل می شود.

Native Redirect Sequence

دنباله تغییر مسیر API مدیریت

مشتریانی که از هدایت تغییر مسیر بومی پشتیبانی نمی کنند ، API مدیریت روتر اتصال را برای دستیابی به کارگزار هدف برای تغییر مسیر دریافت می کنند. اگر API یک کارگزار هدف را برگرداند ، مشتری به آن متصل می شود ، در غیر این صورت مشتری دوباره API را پرس و جو می کند.

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.