اتصالات کارگزاری

ساخت وبلاگ

یک کارگزار به جای اینکه منتظر اتصال مشتری باشد ، می تواند اتصال به نقطه پایانی دیگر در یک پروتکل خاص را آغاز کند.

در حال حاضر ، این ویژگی فقط از پروتکل AMQP پشتیبانی می کند. با این حال ، در آینده ، ممکن است به پروتکل های دیگر گسترش یابد.

اتصالات کارگزار توسط عنصر XML در پرونده پیکربندی broker. xml پیکربندی شده است.

اتصالات سرور AMQP

یک کارگزار ActiveMQ Artemis می تواند با استفاده از پروتکل AMQP اتصالات را آغاز کند. این بدان معنی است که کارگزار می تواند به سرور AMQP دیگری (نه لزوماً ActiveMQ Artemis) متصل شود و عناصری را در این اتصال ایجاد کند.

  • URI: TCP: // میزبان: MyPort (این یک استدلال لازم است)
  • نام: نام اتصال مورد استفاده برای اهداف مدیریتی
  • کاربر: نام کاربری که برای اتصال به نقطه پایانی (این یک آرگومان اختیاری است)
  • رمز عبور: رمز عبوری که برای اتصال به نقطه پایانی (این یک آرگومان اختیاری است)
  • Restry-Interval: زمان ، در میلی ثانیه برای انتظار قبل از تلاش مجدد اتصال پس از خطا. مقدار پیش فرض 5000 است.
  • اتصال مجدد: پیش فر ض-1 به معنای بی نهایت است
  • AUTO-START: آیا اتصال کارگزار به طور خودکار با کارگزار شروع می شود. پیش فرض درست استدر صورت دروغ بودن ، لازم است برای شروع آن با یک عملیات مدیریتی تماس بگیرید.

توجه: اگر شروع خودکار در اتصال کارگزار غیرفعال شود ، شروع اتصال کارگزار تنها پس از آن اتفاق می افتد که روش مدیریت StartBrokerConnection (نام اتصال) در سرور کنترلر فراخوانی شود.

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

عملیات اتصال سرور AMQP

انواع عملیات زیر در اتصال سرور AMQP پشتیبانی می شوند:

  • آینه
    • کارگزار از اتصال AMQP به کارگزار دیگری استفاده می کند و پیام ها را کپی می کند و تصدیق هایی را از طریق سیم ارسال می کند.
    • پیام های دریافت شده در صف های خاص به نقطه پایانی دیگر منتقل می شوند.
    • کارگزار پیام ها را از نقطه پایانی دیگر می کشد.
    • کارگزار هم فرستنده و گیرنده را در نقطه پایانی دیگری ایجاد می کند که می داند چگونه آنها را اداره کند. این در حال حاضر توسط Apache QPID Dispatch اجرا شده است.

    اتصال مجدد و عدم موفقیت

    می توان تعیین کرد که چگونه اتصال مجدد در اتصال کارگزار اتفاق می افتد.

    این ویژگی ها در AMQP-Connection Element XML در دسترس هستند:

    • اتصال مجدد: پیش فرض به عنوا ن-1 (بی نهایت). چند تلاش پس از یک اتصال ناموفق انجام خواهد شد
    • Restry-Interval: پیش فرض به عنوان 5000 ، در میلی ثانیه ، انتظار بین هر آزمایش مجدد در اتصالات.

    همچنین می توان میزبان های متناوب را در اتصال کارگزار با اضافه کردن یک لیست جدا شده کاما پس از # در انتهای URI مشخص کرد. اتصال کارگزار تا زمانی که یکی از اهداف برای اتصال در دسترس باشد ، در لیست جایگزین تلاش می کند. مثال:

    Broker Connection Failover

    شکل 1. اتصال کارگزار - اتصال مجدد و عدم موفقیت.

    مثال قبلی موردی از عدم موفقیت اتصال به سمت سرور را به تصویر می کشد. این سیستم سعی می کند تا زمانی که با موفقیت به یکی از این گره ها متصل شود ، به Servera ، Backupa و Backupb متصل شود.

    آینه کاری

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

    وقایع زیر از طریق آینه سازی ارسال می شود:

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

      پیکربندی آینه

      برای پیکربندی آینه سازی به کارگزار هدف ، یک عنصر را در عنصر اضافه کنید.

      از آرگومان های اختیاری زیر می توان استفاده کرد:

      • queue-removal: مشخص می کند که آیا یک رویداد صف یا آدرس خطاب ارسال شده است. مقدار پیش فرض درست است .
      • پیام-بازپرداخت: مشخص می کند که آیا تأیید پیام ارسال شده است یا خیر. مقدار پیش فرض درست است .
      • صف ایجاد: مشخص می کند که آیا یک رویداد صف یا آدرس ایجاد ارسال شده است. مقدار پیش فرض درست است .

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

      • "اتحادیه اروپا" با همه آدرس ها با "اتحادیه اروپا" مطابقت دارد
      • '! اتحادیه اروپا' به جز کسانی که با "اتحادیه اروپا" شروع می کنند مطابقت دارد
      • "Eu. uk ، eu. de" همه آدرس ها را با "eu. uk" یا "eu. de" مطابقت می دهد
      • "EU ،! Eu. uk" همه آدرس ها را با "اتحادیه اروپا" شروع می کند اما آنهایی که با "eu. uk" شروع نمی شوند

      توجه داشته باشید:

      • محرومیت آدرس همیشه بر ورود به آدرس اولویت خواهد بود.
      • تطبیق آدرس در عناصر آینه مبتنی بر پیشوند است و از تطبیق کارت وحشی پشتیبانی نمی کند.

      نمونه ای از پیکربندی آینه در زیر نشان داده شده است:

      صف ذخیره و رو به جلو

      رویدادهای آینه همیشه در یک صفحات محلی با عنوان "$ activemq artemis_mirror" ذخیره می شوند و سپس با نام پیکربندی شده اتصال کارگزار هماهنگ می شوند.

      بنابراین ، در پیکربندی زیر آینه های آینه در صف بنام "$ activemq_artemis_mirror_brokerb" ذخیره می شوند.

      این پیام ها سپس به Brokerb: 5672 منتقل می شوند. یک تولید کننده به آدرس $ ActiveMQ_ARTEMIS_MIRROR_BROKERB به سمت BrokerB ایجاد می شود. اگر یک مدیر امنیتی پیکربندی شده باشد ، نقش های امنیتی باید در اتصال کارگزار به کاربر ارائه شود.

      توجه کنید به صف $ activeMQ_ARTEMIS_MIRROR_BROKERB در واقع در BrokerB وجود نخواهد داشت و بنابراین در کنسول مدیریت قابل مشاهده نیست. کارگزار هدف با این پیام ها به عنوان رویدادهای آینه رفتار می کند و عملیات مناسب را در کارگزار هدف انجام می دهد.

      پیام های موجود

      کارگزار فقط پیام های آینه ای را که از نقطه زمانی که آینه پیکربندی شده است ، آینه می کند. پیام های موجود قبلاً به کارگزاران دیگر ارسال نمی شوند.

      آینه دوگانه (بازیابی فاجعه)

      ActiveMQ Artemis از آینه کاری خودکار عقب پشتیبانی می کند. هر پیام ارسال شده و هر تصدیق به طور غیر همزمان به کارگزار آینه ای تکرار می شود.

      در نمودار زیر ، دو سرور به نام Datacenter1 و Datacenter2 وجود خواهد داشت. برای داشتن پیکربندی آینه دوگانه ، لازم است اتصال کارگزار آینه در هر کارگزار اضافه کنید. xml:

      Broker Connection DR

      شکل 2. اتصال کارگزار - بازیابی فاجعه.

      در Datacenter1 ، کد زیر باید در Broker. xml اضافه شود:

      XML زیر باید در broker. xml datacenter2 اضافه شود:

      اتصالات کارگزار بدون توجه به اینکه از کجا سرچشمه گرفته اند ، ارسال ها و تصدیق را به کارگزار دیگر تکرار می کنند. اگر پیام ها در DC1 (Datacenter1) ارسال شوند ، اینها به طور خودکار به DC2 (Datacenter2) منتقل می شوند. پیام های دریافت شده در DC2 به طور خودکار به DC1 مرتبط می شوند. تنها استثناء این قانون در صورت وجود مصرف کنندگان با پیام های در انتظار هر سرور وجود داشته است ، جایی که یک تأیید آینه ای مانع از مصرف پیام توسط هر دو مصرف کننده نمی شود. توصیه می شود مصرف کنندگان فعال در هر دو سرور نداشته باشید.

      مثال

      مثالی به عنوان بخشی از توزیع وجود دارد که پیکربندی کارگزار دوگانه (یا بازیابی فاجعه) را در زیر ./examples/features/broker-connection/disaster-recovery نشان می دهد.

      در این مثال ، دو کارگزار برای آینه کردن یکدیگر پیکربندی شده اند و هر اتفاقی که در یک کارگزار رخ می دهد بلافاصله در کارگزار دیگر کپی می شود.

      فرستنده ها و گیرنده ها

      امکان اتصال یک کارگزار ActiveMQ Artemis به یک نقطه پایانی AMQP دیگر به سادگی با ایجاد یک عنصر اتصال کارگزار فرستنده یا گیرنده امکان پذیر است.

      برای یک فرستنده ، کارگزار یک مصرف کننده پیام را در صف ایجاد می کند که پیام ها را به نقطه پایانی AMQP دیگر ارسال می کند.

      برای یک گیرنده ، کارگزار یک تولید کننده پیام را در آدرس ایجاد می کند که پیام هایی را از نقطه پایانی AMQP دریافت می کند.

      هر دو عنصر به عنوان یک پل پیام عمل می کنند. با این حال ، هیچ سربار اضافی برای پردازش پیام ها لازم نیست. فرستنده ها و گیرنده ها دقیقاً مانند هر مصرف کننده یا تولید کننده دیگری در ActiveMQ Artemis رفتار می کنند.

      صف های خاص را می توان توسط فرستنده یا گیرنده ها پیکربندی کرد. عبارات Wildcard می تواند برای مطابقت با فرستنده ها و گیرنده ها با آدرس های خاص یا مجموعه آدرس ها استفاده شود. هنگام پیکربندی فرستنده یا گیرنده ، ویژگی های زیر را می توان تنظیم کرد:

      • آدرس آدرس: با استفاده از یک عبارت Wildcard ، فرستنده یا گیرنده را با یک آدرس یا آدرس خاص مطابقت دهید
      • queue-name: فرستنده یا گیرنده را برای یک صف خاص پیکربندی کنید

      برخی از نمونه ها در زیر نشان داده شده است.

      با استفاده از عبارات آدرس:

      با استفاده از نامهای صف:

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

      مهم: از ایجاد فرستنده و گیرنده به یک مقصد خودداری کنید. این یک حلقه نامحدود از ارسال و دریافت ایجاد می کند.

      همتایان

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

      پیکربندی همتا باعث می شود که ActiveMQ Artemis یک جفت فرستنده و گیرنده برای هر مقصدی که در پیکربندی اتصال واسطه ای مطابقت دارد، ایجاد کند، که اینها دارای پیکربندی خاصی هستند تا به Qpid Dispatch اطلاع دهد تا با کارگزار همکاری کند. این جایگزین نیاز سنتی به اتصال راه اندازی شده توسط روتر و پیوندهای خودکار می شود.

      روتر توزیع Qpid گزینه های شبکه پیشرفته زیادی را ارائه می دهد که همراه با ActiveMQ Artemis استفاده می شود.

      با پیکربندی همتا، همان ویژگی هایی وجود دارد که فرستنده و گیرنده وجود دارد. به عنوان مثال، پیکربندی که در آن صف هایی با نام هایی که شروع به «صف» می کنند. به عنوان ذخیره سازی برای آدرس ایستگاه مسیریاب منطبق عمل می کند:

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

      برای اطلاعات بیشتر به مستندات "پیام های واسطه ای" برای روتر ارسال Apache Qpid مراجعه کنید.

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

      مهم: برای برقراری ارتباط با کارگزار نیازی به پیکربندی روتر با کانکتور یا پیوندهای خودکار نیست. پیکربندی همتای کارگزاران جایگزین این جنبه های استفاده از ایستگاه بین مسیریاب می شود.

      در نظر گرفتن آدرس

      به شدت توصیه می شود که نام آدرس و نام صف یکسان باشد. هنگامی که یک صف با نام متمایز خود (مانند مثال زیر) استفاده می شود، فرستنده و گیرنده همیشه از نام آدرس هنگام ایجاد نقطه پایانی راه دور استفاده می کنند.

      در مثال بالا، اتصال بروکر یک فرستنده AMQP به سمت "queues. A" ایجاد می کند.

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

فارکس وکسب درامد...
ما را در سایت فارکس وکسب درامد دنبال می کنید

برچسب : نویسنده : احمد قانع پور بازدید : 54 تاريخ : شنبه 9 ارديبهشت 1402 ساعت: :