Apache ActiveMQ Artemis کارگزاران کارگزاران اجازه می دهند اتصالات مشتری ورودی در چندین کارگزاران هدف توزیع شود. کارگزاران هدف در استخرها گروه بندی می شوند و تعادل کارگزاران از یک کلید هدف برای انتخاب یک کارگزار هدف از استخر کارگزاران مطابق با یک سیاست استفاده می کنند.
این ویژگی هنوز آزمایشی است و هنوز به معنای تولید آن نیست. علاوه بر این ، پیکربندی آن می تواند تغییر کند تا زمانی که رسماً پایدار اعلام شود.
کارگزار هدف
Target Broker یک کارگزار است که می تواند اتصالات مشتری ورودی را بپذیرد و محلی یا از راه دور است. هدف محلی یک هدف ویژه است که نشان دهنده همان کارگزار میزبان کارگزار متعادل است. هدف از راه دور یکی دیگر از کارگزاران قابل دسترسی است.
کلید هدف
Broker Balancer از یک کلید هدف برای انتخاب یک کارگزار هدف استفاده می کند. این رشته ای است که از یک اتصال مشتری ورودی گرفته شده است ، مقادیر پشتیبانی شده عبارتند از:
- Client_id شناسه مشتری JMS است.
- SNI_HOST نام میزبان است که توسط مشتری در پسوند SNI پروتکل TLS نشان داده شده است.
- Source_ip آدرس IP منبع مشتری است.
- user_name نام کاربری است که توسط مشتری نشان داده شده است.
- COLLE_NAME نقشی است که با کاربر معتبر اتصال همراه است.
استخر
استخر گروهی از کارگزاران هدف با چک های دوره ای در وضعیت آنها است. این لیستی از کارگزاران هدف آماده را برای توزیع اتصالات مشتری ورودی فقط در صورت فعال بودن ارائه می دهد. هنگامی که حداقل تعداد کارگزاران هدف ، همانطور که توسط پارامتر اندازه سهمیه تعریف شده است ، استخر فعال می شود. هنگامی که فعال نباشد ، هیچ هدف از جلوگیری از توزیع عجیب در هنگام راه اندازی یا بعد از راه اندازی مجدد فراهم نمی کند. از جمله کارگزار محلی در استخر هدف ، کارگزار را به میزبان متعادل می دهد تا اتصالات مشتری ورودی را نیز بپذیرد. به طور پیش فرض ، یک استخر شامل کارگزار محلی نیست ، تا آن را به عنوان یک هدف درج کند ، پارامتر با هدف محلی باید صحیح باشد. سه نوع استخر وجود دارد: استخر خوشه ، استخر کشف و استخر استاتیک.
استخر خوشه
استخر خوشه ای از اتصال خوشه ای برای اضافه کردن کارگزاران هدف استفاده می کند. بیایید نگاهی به یک نمونه استخر خوشه ای از Broker. xml که از یک اتصال خوشه ای استفاده می کند:
استخر کشف
استخر Discovery از یک گروه Discovery برای کشف کارگزاران هدف برای اضافه کردن استفاده می کند. بیایید نگاهی به یک نمونه استخر کشف از Broker. xml که از یک گروه Discovery استفاده می کند ، نگاهی بیندازیم:
استخر استاتیک
استخر استاتیک از لیستی از اتصالات استاتیک برای تعریف کارگزاران هدف برای اضافه کردن استفاده می کند. بیایید نگاهی به یک نمونه استات استاتیک از Broker. xml بیندازیم که از لیستی از اتصالات استاتیک استفاده می کند:
تعیین استخرها
استخر توسط عنصر استخر تعریف شده است که موارد زیر را شامل می شود:
- عنصر نام کاربری نام کاربری را برای اتصال به کارگزار هدف تعریف می کند.
- عنصر رمز عبور رمز عبور را برای اتصال به کارگزار هدف تعریف می کند.
- عنصر دوره چک مشخص می کند که چند بار برای بررسی کارگزار هدف ، اندازه گیری شده در میلی ثانیه ، پیش فرض 5000 است.
- عنصر اندازه سهمیه حداقل تعداد اهداف آماده را برای فعال کردن استخر تعریف می کند ، پیش فرض 1 است.
- عنصر Quorum-timeout زمان را برای به دست آوردن حداقل تعداد اهداف آماده ، که در میلی ثانیه اندازه گیری می شود ، تعیین می کند ، پیش فرض 3000 است.
- عنصر با هدف محلی با هدف مشخص می کند که آیا استخر باید یک هدف محلی را شامل شود ، پیش فرض نادرست است.
- عنصر اتصال خوشه ای اتصال خوشه ای را که توسط استخر خوشه استفاده می شود ، تعریف می کند.
- عنصر اتصال دهنده های استاتیک لیستی از اتصالات استاتیک مورد استفاده در استخر استاتیک را تعریف می کند.
- عنصر گروه Discovery گروه Discovery را که توسط استخر Discovery استفاده می شود ، تعریف می کند.
بیایید نگاهی به یک نمونه استخر از Broker. xml بیندازیم:
سیاست های
این خط مشی نحوه انتخاب یک کارگزار از استخر را تعریف می کند. سیاست های موجود عبارتند از:
- First_Element برای انتخاب اولین کارگزار هدف از استخر که آماده است. انتخاب کارگزاران هدف آماده مطابق با اولویت تعریف شده با ترتیب توالی آنها ، یعنی فرض می شود 2 کارگزار هدف وجود دارد این سیاست کارگزار هدف دوم را تنها در صورت آماده بودن کارگزار هدف انتخاب می کند.
- ROUND_ROBIN برای انتخاب یک هدف به طور متوالی از استخر ، این سیاست برای توزیع یکنواخت مفید است.
- سازگار_هش برای انتخاب یک هدف توسط یک کلید. این خط مشی همیشه همان کارگزار هدف را برای همان کلید انتخاب می کند تا زمانی که از استخر خارج شود.
- حداقل_ connections برای انتخاب اهداف با کمترین اتصالات فعال. این خط مشی به شما کمک می کند تا توزیع مساوی از اتصالات فعال با کارگزاران هدف را حفظ کنید.
یک سیاست توسط عنصر سیاست تعریف می شود. بیایید نگاهی به یک مثال خط مشی از Broker. xml بیندازیم:
مخازن
Broker Balancer یک حافظه پنهان را برای بهبود چسبندگی کارگزار هدف انتخاب شده فراهم می کند و همان کارگزار هدف را برای یک کلید هدف باز می گرداند تا زمانی که در حافظه نهان موجود باشد و آماده باشد. بنابراین یک تعادل کارگزار با حافظه نهان به شدت از خط مشی پیکربندی شده پیروی نمی کند. به طور پیش فرض ، حافظه نهان فعال شده و هرگز از آن زمان نخواهد بود. برای اطلاعات بیشتر در مورد تنظیم پارامتر حافظه نهان ، به زیر مراجعه کنید.
ترانسفورماتورهای کلیدی
یک ترانسفورماتور کلید محلی-هدفمند اجازه می دهد تا قبل از تطبیق در برابر هر فیلتر محلی محلی ، تغییر کلید را هدف قرار دهد. یک مورد استفاده ، client_id در یک خوشه از کارگزاران N است. با یک تغییر ثابت ٪ n ، هر شناسه مشتری می تواند منحصراً فقط در یکی از کارگزاران نقشه برداری کند. ترانسفورماتورهای موجود عبارتند از:
- سازگار_HASH_MODULO که برای پیکربندی محدوده یک خاصیت مدول را می گیرد.
تعریف تعادل کارگزار
یک تعادل کارگزار توسط عنصر کارگزار-بالکن تعریف می شود ، موارد زیر را شامل می شود:
- ویژگی نام نام کارگزار را تعریف می کند و برای مراجعه به متعادل کننده از یک پذیرنده استفاده می شود.
- عنصر کلید هدف تعریف می کند که چه کلید برای انتخاب یک کارگزار هدف ، مقادیر پشتیبانی شده عبارتند از: client_id ، sni_host ، source_ip ، user_name ، more_name ، پیش فرض است source_ip ، برای جزئیات بیشتر به کلید هدف مراجعه کنید.
- عنصر فیلتر هدفمند یک عبارت معمولی را برای فیلتر کردن کلیدهای حل شده تعریف می کند.
- عنصر فیلتر هدف محلی یک عبارت معمولی را برای مطابقت با کلیدهایی که باید یک هدف محلی را برگردانند ، تعریف می کند.
- عنصر محلی-ترانسفورماتور محلی یک ترانسفورماتور کلیدی را تعریف می کند ، به ترانسفورماتورهای کلید مراجعه کنید.
- عنصر حافظه نهان ، مدت زمانی است که یک کارگزار هدف در حافظه نهان باقی می ماند ، در میلی ثانیه اندازه گیری می شود ، تنظیم 0 حافظه نهان را غیرفعال می کند ، پیش فر ض-1 است ، به معنای عدم انقضا.
- عنصر استخر استخر را برای گروه بندی کارگزاران هدف تعریف می کند ، استخرها را ببینید.
- عنصر خط مشی سیاست مورد استفاده برای انتخاب کارگزاران هدف از استخر را تعریف می کند ، به سیاست ها مراجعه می کند.
بیایید نگاهی به برخی از نمونه های متعادل کارگزار از Broker. xml بیندازیم:
گردش کار متعادل کارگزار
گردش کار Broker Balancer شامل مراحل زیر است:
- کلید هدف را از اتصال ورودی بازیابی کنید.
- اگر کلید هدف با فیلتر محلی مطابقت دارد ، کارگزار هدف محلی را برگردانید.
- نماینده استخر:
- در صورت آماده بودن ، کارگزار هدف ذخیره شده را برگردانید.
- کارگزاران هدف آماده/فعال را از استخر دریافت کنید.
- با استفاده از خط مشی یک کارگزار هدف را انتخاب کنید.
- کارگزار انتخاب شده را در حافظه نهان اضافه کنید.
- کارگزار منتخب را برگردانید.
بیایید نگاهی به FlowChart گردش کار Broker Balancer بیندازیم:
جاذبه داده ها
اولین پیکربندی متعادل کننده: بخش محلی ، ساده ترین مورد استفاده ، یعنی حفظ گرانش داده ها را با محدود کردن زیر مجموعه ای از داده های برنامه به یک کارگزار معین نشان می دهد. به هر کارگزار زیر مجموعه ای از کلیدها داده می شود که منحصراً خدمات یا رد می کند. اگر کارگزاران در پشت یک بولسر بار رابین دور باشند یا دانش کاملی از URL های کارگزار داشته باشند ، سرانجام کارگزار آنها پاسخ می دهد. بیان منظم-فیلتر محلی ، دانه بندی پارتیشن را تعیین می کند که برای حفظ گرانش داده برای برنامه های شما بهتر است.
چالش در ارائه یک کلید ثابت در کلیه اتصالات برنامه مربوطه است.
توجه: مفهوم گرانش داده ها سعی می کند این واقعیت را ضبط کند که در حالی که آدرس ها توسط چندین برنامه به اشتراک گذاشته می شوند ، بهتر است آدرس های مرتبط و داده های آنها را بر روی یک کارگزار واحد نگه دارید. به طور معمول ، برنامه ها باید به جای داده های منتقل شده به هر کارگزار که برنامه نیز به آن متصل می شود ، به داده ها متصل شوند. این امر به ویژه هنگامی صادق است که میزان داده ها (پس زمینه) زیاد باشد ، هزینه حرکت برای پیروی از مصرف کنندگان از هزینه تحویل به برنامه فراتر می رود. با ذهنیت "جاذبه داده" ، اپراتورها کمتر به تعداد اتصالات و بیشتر مربوط به برنامه ها و آدرس های مورد نیاز برای تعامل هستند.
تغییر مسیر
Apache ActiveMQ Artemis یک تغییر مسیر بومی را برای مشتریان پشتیبانی شده و یک API مدیریت جدید برای سایر مشتریان فراهم می کند. تغییر مسیر بومی را می توان برای هر پذیرنده فعال کرد و فقط برای مشتریان AMQP ، Core و OpenWire پشتیبانی می شود. پذیرنده با پارامتر تغییر مسیر به URL ، اتصالات ورودی را هدایت می کند. پارامتر تغییر مسیر به URL نام کارگزار را برای استفاده مشخص می کند ، یعنی پذیرنده زیر ارتباطات مشتری اصلی دریافتی را با استفاده از کارگزار متعادل با نام Simple-Balancer هدایت می کند:
دنباله تغییر مسیر بومی
مشتریانی که از تغییر مسیر بومی حمایت می کنند با تغییر مسیر فعال شده به گیرنده متصل می شوند. پذیرنده در صورت آماده بودن به مشتری ، کارگزار هدف را برای تغییر مسیر ارسال می کند و اتصال را می بندد. مشتری اگر قبل از قطع شدن یکی از آنها را دریافت کرده باشد ، به کارگزار هدف متصل می شود ، در غیر این صورت دوباره با فعال کردن تغییر مسیر به گیرنده وصل می شود.
دنباله تغییر مسیر API مدیریت
مشتریانی که از هدایت تغییر مسیر بومی پشتیبانی نمی کنند ، API مدیریت کارگزار را برای دستیابی به کارگزار هدف برای تغییر مسیر دریافت می کنند. اگر API یک کارگزار هدف را برگرداند ، مشتری به آن متصل می شود ، در غیر این صورت مشتری دوباره API را پرس و جو می کند.