ترحيل تطبيقات خدمة رسائل Java 2.0 (JMS) الحالية من Apache ActiveMQ إلى ناقل خدمة Microsoft Azure | Microsoft Docs
تتناول هذه المقالة كيفية تعديل تطبيق خدمة رسائل Java 2.0 (JMS) موجود يتفاعل مع وسيط JMS للتفاعل مع ناقل خدمة Microsoft Azure بدلًا من ذلك. تُغطي المقالة، على وجه الخصوص، الترحيل من Apache ActiveMQ أو Amazon MQ.
يدعم ناقل خدمة Microsoft Azure نظام Java 2 الأساسي، وإصدارات المؤسسات، وأحمال العمل Spring التي تستخدم واجهة برمجة تطبيقات JMS 2.0 عبر بروتوكول مُتقدم لوضع الرسائل في قائمة انتظار (AMQP).
قبل أن تبدأ
الاختلافات بين Apache ActiveMQ وناقل خدمة Microsoft Azure
Apache ActiveMQ وناقل خدمة Microsoft Azure كلاهما وسطاء للرسائل، ويعملان كمُوفري خدمة رسائل Java لتطبيقات العميل لإرسال الرسائل إليها واستلام الرسائل منها. كلاهما يُمكّن دلالات نقطة إلى نقطة مع قوائم الانتظار، ودلالات النشر-الاشتراك مع الموضوعات والاشتراكات.
ومع ذلك، هناك بعض الاختلافات بين الاثنين، كما يُظهر الجدول التالي:
فئة | ActiveMQ | ناقل خدمة Azure |
---|---|---|
مستويات التطبيق | متجانسة بنظام مجموعة | من طبقتين (بوابة + نهاية خلفية) |
دعم البروتوكول |
|
AMQP |
وضع تزويد الخدمة |
|
النظام الأساسي كخدمة المُدار (PaaS) |
حجم الرسالة | ممكن تكوينه للعميل | 100 ميغابايت (المستوى المميز) |
التوافر العالي | - يديره العميل | النظام الأساسي المُدار |
التعافي من الكوارث | - يديره العميل | النظام الأساسي المُدار |
الميزات المدعومة وغير المدعومة
يسرد الجدول التالي ميزات خدمة رسائل Java (JMS) التي يدعمها ناقل خدمة Azure حالياً. كما يعرض الميزات غير المدعومة.
الميزة | API | الحالة |
---|---|---|
الصفوف |
|
دعم |
المواضيع |
|
دعم |
قوائم انتظار مؤقتة |
|
دعم |
مواضيع مؤقتة |
|
دعم |
منتج الرسائل / JMSProducer |
|
دعم |
متصفحات قائمة الانتظار |
|
دعم |
مستهلك الرسالة/ JMSConsumer |
noLocal غير معتمد حالياً |
دعم |
الاشتراكات المشتركة الدائمة |
|
دعم |
الاشتراكات غير المشتركة الدائمة |
noLocal غير مدعوم حالياً ويجب تعيينه إلى "false" |
دعم |
الاشتراكات المشتركة غير الدائمة |
|
دعم |
الاشتراكات غير المشتركة غير الدائمة |
noLocal غير مدعوم حالياً ويجب تعيينه إلى "false" |
دعم |
محددات الرسائل | يعتمد على المستهلك الذي تم إنشاؤه | دعم |
تأخير التسليم (الرسائل المجدولة) |
|
دعم |
تم إنشاء الرسالة |
|
دعم |
المعاملات عبر الكيانات |
|
دعم |
معاملات موزعة | غير مدعوم |
الاعتبارات
طبيعة ناقل خدمة Microsoft Azure ذات المستويين تُوفر إمكانيات مختلفة لاستمرارية العمل (قابلية وصول عالية والتعافي من الكوارث). ومع ذلك، هناك بعض الاعتبارات عند استخدام ميزات خدمة رسائل Java.
ترقيات الخدمة
في حالة ترقيات ناقل الخدمة وإعادة تشغيله، تُحذف قوائم الانتظار المؤقتة أو الموضوعات المؤقتة. إذا كان تطبيقك حساسًا لفقدان البيانات في قوائم الانتظار المؤقتة أو الموضوعات المؤقتة، فلا تستخدم قوائم انتظار مؤقتة أو موضوعات مؤقتة. استخدم قوائم انتظار وموضوعات واشتراكات دائمة بدلًا من ذلك.
ترحيل البيانات
كجزء من ترحيل تطبيقات العميل وتعديلها للتفاعل مع ناقل خدمة Microsoft Azure، لا تُرحل البيانات الموجودة في ActiveMQ إلى ناقل خدمة Microsoft Azure. قد تحتاج إلى تطبيق مُخصص لتعيين قوائم انتظار ActiveMQ والموضوعات والاشتراكات، ثم إعادة إرسال الرسائل إلى قوائم الانتظار والموضوعات والاشتراكات في ناقل خدمة Microsoft Azure.
المصادقة والتخويل
يعد التحكم في الوصول المستند إلى الدور في Azure (Azure RBAC)، المدعوم بمعرف Microsoft Entra، آلية المصادقة المفضلة لناقل خدمة Microsoft Azure. لتمكين التحكم في الوصول المستند إلى الدور، يرجى اتباع الخطوات الواردة في دليل مطور ناقل خدمة Azure JMS 2.0.
ما قبل الترحيل
التحقق من الإصدار
يمكنك استخدام المكونات والإصدارات التالية أثناء كتابة تطبيقات خدمة رسائل Java:
المكون | الإصدار |
---|---|
واجهة برمجة تطبيقات خدمة رسائل Java (JMS) | 1.1 أو إصدار أحدث |
بروتوكول AMQP | 1.0 |
تأكد أن منافذ AMQP مفتوحة
ناقل خدمة Microsoft Azure يدعم الاتصال عبر بروتوكول AMQP. لهذا الغرض، قم بتمكين الاتصال عبر المنافذ 5671 (AMQP)، و443 (TCP). اعتمادًا على مكان استضافة تطبيقات العميل، قد تحتاج إلى تذكرة دعم للسماح بالاتصال عبر هذه المنافذ.
هام
ناقل خدمة Microsoft Azure لا يدعم إلا بروتوكول AMQP 1.0.
إعداد تكوينات المؤسسة
ناقل خدمة Microsoft Azure يُمكن مختلف ميزات أمن المؤسسة وقابلية وصول عالية. لمزيد من المعلومات، راجع:
- نقاط نهاية خدمة Virtual Network
- جدار حمايه
- تشفير جانب الخدمة باستخدام مفتاح يديره العميل (BYOK)
- نقاط النهاية الخاصة
- المصادقة والتخويل
المراقبة والتنبيهات والتتبع
لكل مساحة اسم ناقل خدمة Microsoft Azure، يمكنك نشر المقاييس على مراقبة Azure. يمكنك استخدام هذه المقاييس للتنبيه والتحجيم الديناميكي للموارد المُخصصة لمساحة الاسم.
لمزيد من المعلومات حول المقاييس المختلفة وكيفية إعداد التنبيهات عليها، راجع مقاييس ناقل خدمة Microsoft Azure في مراقبة Azure. يمكنك أيضًا معرفة المزيد حول تتبع جانب العميل لعمليات البيانات، وتسجيل تشخيصي/تشغيلي لعمليات الإدارة.
المقاييس - New Relic
يمكنك ربط المقاييس من خريطة ActiveMQ بالمقاييس في ناقل خدمة Microsoft Azure. إليك ما يلي من موقع New Relic:
إشعار
حاليًا، لا يتمتع New Relic بالتكامل المباشر السلس مع ActiveMQ، ولكن لديهم مقاييس متاحة لـ Amazon MQ. نظرًا لأن Amazon MQ مُشتق من ActiveMQ، فإن الجدول التالي يُوضح مقاييس New Relic من Amazon MQ إلى ناقل خدمة Microsoft Azure.
تجميع القياس | قياس Amazon MQ/ActiveMQ | قياس ناقل خدمة Microsoft Azure |
---|---|---|
الوسيط | CpuUtilization |
CPUXNS |
الوسيط | MemoryUsage |
WSXNS |
الوسيط | CurrentConnectionsCount |
activeConnections |
الوسيط | EstablishedConnectionsCount |
activeConnections + connectionsClosed |
الوسيط | InactiveDurableTopicSubscribersCount |
استخدام مقاييس الاشتراك |
الوسيط | TotalMessageCount |
استخدام قائمة الانتظار/ الموضوع/مستوى الاشتراك activeMessages |
قائمة الانتظار/الموضوع | EnqueueCount |
incomingMessages |
قائمة الانتظار/الموضوع | DequeueCount |
outgoingMessages |
الصف | QueueSize |
sizeBytes |
الترحيل
لترحيل تطبيق JMS 2.0 الموجود لديك للتفاعل مع ناقل خدمة Microsoft Azure، اتبع الخطوات الواردة في الأقسام العديدة التالية.
تصدير المخطط من ActiveMQ وإنشاء الكيانات في ناقل خدمة Microsoft Azure (اختياري)
لضمان أن تطبيقات العميل يمكنها الاتصال بسهولة بناقل خدمة Microsoft Azure، قم بترحيل المخطط (بما في ذلك قوائم الانتظار والمواضيع والاشتراكات) من Apache ActiveMQ إلى ناقل خدمة Microsoft Azure.
إشعار
بالنسبة لتطبيقات خدمة رسائل Java، يمكنك إنشاء قوائم الانتظار والمواضيع والاشتراكات كعمليات وقت التشغيل. يمنحك معظم مُوفري خدمة رسائل Java (وسطاء الرسائل) القدرة على إنشاء هذه في وقت التشغيل. لهذا السبب تعتبر خطوة التصدير هذه اختيارية. لضمان أن تطبيقك لديه الأذونات لإنشاء المخطط في وقت التشغيل، استخدم سلسلة الاتصال مع أذونات Manage
SAS.
للقيام بذلك:
- استخدم أدوات سطر الأوامر ActiveMQ لتصدير المخطط.
- أعد إنشاء نفس المخطط باستخدام قالب إدارة موارد Azure.
- تشغيل قالب إدارة موارد Azure.
استيراد تبعية maven لتنفيذ خدمة رسائل Java لناقل خدمة Microsoft Azure
لضمان سهولة الاتصال مع ناقل خدمة Microsoft Azure، أضف حزمة azure-servicebus-jms
كتبعية إلى ملف pom.xml
Maven كما يلي:
<dependencies>
...
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-servicebus-jms</artifactId>
</dependency>
...
</dependencies>
تغييرات تكوين خادم التطبيق
خُصص هذا الجزء إلى خادم التطبيق الذي يستضيف تطبيقات العميل المتصلة بـ ActiveMQ.
تطبيقات Spring
حدّث ملف application.properties
إذا كنت تستخدم تطبيق Spring Boot للاتصال بـ ActiveMQ، يجب إزالة الخصائص الخاصة بـ ActiveMQ من الملف application.properties
.
spring.activemq.broker-url=<ACTIVEMQ BROKER URL>
spring.activemq.user=<ACTIVEMQ USERNAME>
spring.activemq.password=<ACTIVEMQ PASSWORD>
ثم أضف الخصائص الخاصة بناقل خدمة Microsoft Azure إلى الملف application.properties
.
azure.servicebus.connection-string=Endpoint=myEndpoint;SharedAccessKeyName=mySharedAccessKeyName;SharedAccessKey=mySharedAccessKey
استبدال ActiveMQConnectionFactory
بـ ServiceBusJmsConnectionFactory
الخطوة التالية هي استبدال مثيل ActiveMQConnectionFactory
بـ ServiceBusJmsConnectionFactory
.
إشعار
تغييرات التعليمات البرمجية الفعلية خاصة بالتطبيق وكيفية إدارة التبعيات، ولكن العينة التالية تُوفر التوجيه حول ما يجب تغييره.
سابقًا، قد تكون أنشأت مثيل كائن ActiveMQConnectionFactory
، كما يلي:
String BROKER_URL = "<URL of the hosted ActiveMQ broker>";
ConnectionFactory factory = new ActiveMQConnectionFactory(BROKER_URL);
Connection connection = factory.createConnection();
connection.start();
الآن، ستُغيّر هذا لإنشاء مثيل لكائن ServiceBusJmsConnectionFactory
، كما يلي:
ServiceBusJmsConnectionFactorySettings settings = new ServiceBusJmsConnectionFactorySettings();
String SERVICE_BUS_CONNECTION_STRING = "<Service Bus Connection string>";
ConnectionFactory factory = new ServiceBusJmsConnectionFactory(SERVICE_BUS_CONNECTION_STRING, settings);
Connection connection = factory.createConnection();
connection.start();
ما بعد الترحيل
الآن بعد أن عدلت التطبيق لبدء إرسال الرسائل واستقبالها من ناقل خدمة Microsoft Azure، يجب التحقق من أنه يعمل كما تتوقع. عند الانتهاء من ذلك، يمكنك المتابعة إلى زيادة تحسين وتحديث مكدس تطبيقك.
الخطوات التالية
استخدم Spring Boot Starter لخدمة رسائل Java لناقل خدمة Microsoft Azure للتكامل السلس مع ناقل خدمة Microsoft Azure.
لمعرفة المزيد حول خدمة رسائل Java ومراسلة ناقل خدمة Microsoft Azure، راجع: