استخدم خدمة رسائل Java 2.0 API من خلال العضوية المميزة لناقل خدمة Azure

توضح هذه المقالة كيفية استخدامخدمة رسائل Java 2.0 API المشهورة للتفاعل مع ناقل خدمة Azure عبر بروتوكول قائمة انتظار الرسائل المتقدمة (AMQP 1.0).

ملاحظة

يتوفر دعم Java Message Service (JMS) 2.0 API فقط في المستوى المتميز.>

المتطلبات الأساسية

بدء استخدام ناقل خدمة Microsoft Azure

يفترض هذا الدليل أن لديك بالفعل مساحة اسم ناقل خدمة Microsoft Azure. إذا لم تفعل ذلك، فقم بإنشاء مساحة اسم وقائمة انتظار باستخدام مدخل Microsoft Azure. لمزيد من المعلومات حول كيفية إنشاء مساحات أسماء ناقل خدمة Microsoft Azure وقوائم انتظار، راجع البدء في قوائم انتظار ناقل خدمة Microsoft Azure عبر مدخل Microsoft Azure.

إعداد بيئة تطوير Java

لتطوير تطبيقات Java، تحتاج إلى إعداد بيئة التطوير المناسبة -

  • إما JDK (أداة تطوير Java) أو JRE (بيئة تشغيل Java) مُثبت.
  • تتم إضافة JDK أو JRE إلى مسار الإنشاء ومتغيرات النظام المناسبة.
  • يتم تثبيت IDE Java للاستفادة من JDK أو JRE. على سبيل المثال، Eclipse أو IntelliJ.

لمعرفة المزيد حول كيفية إعداد بيئة المطور الخاص بك ل Java على ناقل خدمة Microsoft Azure، استخدم هذا الدليل.

ما هي ميزات JMS المدعومة؟

يسرد الجدول التالي ميزات خدمة رسائل Java (JMS) التي يدعمها ناقل خدمة Azure حالياً. كما يعرض الميزات غير المدعومة.

الميزة واجهة برمجة التطبيقات (API) الحالة
قوائم الانتظار
  • JMSContext.createQueue( String queueName)
مدعوم
الموضوعات
  • JMSContext.createTopic( String topicName)
مدعوم
قوائم انتظار مؤقتة
  • JMSContext.createTemporaryQueue()
مدعوم
مواضيع مؤقتة
  • JMSContext.createTemporaryTopic()
مدعوم
منتج الرسائل /
JMSProducer
  • JMSContext.createProducer()
مدعوم
متصفحات قائمة الانتظار
  • JMSContext.createBrowser(Queue queue)
  • JMSContext.createBrowser(Queue queue, String messageSelector)
مدعوم
مستهلك الرسالة/
JMSConsumer
  • JMSContext.createConsumer( Destination destination)
  • JMSContext.createConsumer( Destination destination, String messageSelector)
  • JMSContext.createConsumer( Destination destination, String messageSelector, boolean noLocal)

noLocal غير معتمد حالياً
مدعوم
الاشتراكات المشتركة الدائمة
  • JMSContext.createSharedDurableConsumer(Topic topic, String name)
  • JMSContext.createSharedDurableConsumer(Topic topic, String name, String messageSelector)
مدعوم
الاشتراكات غير المشتركة الدائمة
  • JMSContext.createDurableConsumer(Topic topic, String name)
  • createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal)

noLocal غير مدعوم حالياً ويجب تعيينه إلى "false"
مدعوم
الاشتراكات المشتركة غير الدائمة
  • JMSContext.createSharedConsumer(Topic topic, String sharedSubscriptionName)
  • JMSContext.createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector)
مدعوم
الاشتراكات غير المشتركة غير الدائمة
  • JMSContext.createConsumer(Destination destination)
  • JMSContext.createConsumer( Destination destination, String messageSelector)
  • JMSContext.createConsumer( Destination destination, String messageSelector, boolean noLocal)

noLocal غير مدعوم حالياً ويجب تعيينه إلى "false"
مدعوم
محددات الرسائل يعتمد على المستهلك الذي تم إنشاؤه مدعوم
تأخير التسليم (الرسائل المجدولة)
  • JMSProducer.setDeliveryDelay( long deliveryDelay)
مدعوم
تم إنشاء الرسالة
  • JMSContext.createMessage()
  • JMSContext.createBytesMessage()
  • JMSContext.createMapMessage()
  • JMSContext.createObjectMessage( Serializable object)
  • JMSContext.createStreamMessage()
  • JMSContext.createTextMessage()
  • JMSContext.createTextMessage( String text)
مدعوم
المعاملات عبر الكيانات
  • Connection.createSession(true, Session.SESSION_TRANSACTED)
مدعوم
معاملات موزعة غير مدعوم

تنزيل مكتبة عملاء خدمة رسائل Java (JMS)

للاستفادة من جميع الميزات المتوفرة في المستوى المتميز، أضف المكتبة التالية إلى مسار إنشاء المشروع.

Azure-servicebus-jms

ملاحظة

لإضافة Azure-servicebus-jms إلى مسار الإنشاء، استخدم أداة إدارة التبعية المفضلة لمشروعك مثل Maven أو Gradle.

برمجة تطبيقات Java

بمجرد استيراد التبعيات، يمكن كتابة تطبيقات Java على نحو يتوافق مع مقدم خدمة رسائل Java.

الاتصال بناقل خدمة Microsoft Azure باستخدام JMS

للاتصال مع ناقل خدمة Microsoft Azure باستخدام عملاء JMS، تحتاج إلى سلسلة الاتصالالمتوفرة في 'سياسات الوصول المشترك' في مدخل Microsoft Azure ضمن سلسلة الاتصال الأساسية.

  1. إنشاء مثيل ل ServiceBusJmsConnectionFactorySettings

    ServiceBusJmsConnectionFactorySettings connFactorySettings = new ServiceBusJmsConnectionFactorySettings();
    connFactorySettings.setConnectionIdleTimeoutMS(20000);
    
  2. إنشاء مثيل ServiceBusJmsConnectionFactoryمع المناسبServiceBusConnectionString.

    String ServiceBusConnectionString = "<SERVICE_BUS_CONNECTION_STRING_WITH_MANAGE_PERMISSIONS>";
    ConnectionFactory factory = new ServiceBusJmsConnectionFactory(ServiceBusConnectionString, connFactorySettings);
    
  3. استخدم ConnectionFactory إما لإنشاء Connection ثم Session

    Connection connection = factory.createConnection();
    Session session = connection.createSession();
    

    أو JMSContext (لعملاء JMS 2.0)

    JMSContext jmsContext = factory.createContext();
    

    هام

    على الرغم من تشابه اسميهما، فإن جلسة خدمة رسائل Java وجلسة ناقل خدمة Azure مستقلين تمامًا عن بعضهما البعض.

    في JMS 1.1، الجلسة هي لبنة أساسية من واجهة برمجة التطبيقات التي تسمح بإنشاء MessageProducerو MessageConsumerو Message نفسها. لمزيد من التفاصيل، راجع نموذج برمجة JMS API

    في ناقل خدمة Microsoft Azure، الجلسات هي بنية من جانب الخدمة والعميل لتمكين معالجة FIFO في قوائم الانتظار والاشتراكات.

كتابة تطبيق JMS

بمجرد إنشاء مثيل Sessionأو JMSContext، يمكن للتطبيق استخدام واجهات برمجة تطبيقات JMS المألوفة لتنفيذ كل من عمليات الإدارة والبيانات. راجع قائمة ميزات JMS المعتمدة لمعرفة واجهات برمجة التطبيقات المعتمدة. فيما يلي بعض نماذج مقتطفات التعليمات البرمجية لبدء استخدام JMS -

إرسال رسائل إلى قائمة انتظار وموضوع

// Create the queue and topic
Queue queue = jmsContext.createQueue("basicQueue");
Topic topic = jmsContext.createTopic("basicTopic");
// Create the message
Message msg = jmsContext.createMessage();

// Create the JMS message producer
JMSProducer producer = jmsContext.createProducer();

// send the message to the queue
producer.send(queue, msg);
// send the message to the topic
producer.send(topic, msg);

استقبال الرسائل من قائمة الانتظار

// Create the queue
Queue queue = jmsContext.createQueue("basicQueue");

// Create the message consumer
JMSConsumer consumer = jmsContext.createConsumer(queue);

// Receive the message
Message msg = (Message) consumer.receive();

تلقي رسائل من اشتراك دائم مشترك حول موضوع

// Create the topic
Topic topic = jmsContext.createTopic("basicTopic");

// Create a shared durable subscriber on the topic
JMSConsumer sharedDurableConsumer = jmsContext.createSharedDurableConsumer(topic, "sharedDurableConsumer");

// Receive the message
Message msg = (Message) sharedDurableConsumer.receive();

الملخص

أظهر هذا الدليل للمطور كيف يمكن لتطبيقات عميل Java التي تستخدم خدمة رسائل Java (JMS) عبر AMQP 1.0 الاتصال بناقل خدمة Microsoft Azure.

يمكنك أيضًا استخدام AMQP 1.0 لناقل خدمة Microsoft Azure من لغات أخرى، مثل Microsoft .NET, C, Python, PHP. المكونات التي تم إنشاؤها باستخدام هذه اللغات المختلفة يُمكنها تبادل الرسائل بشكل موثوق وبدقة كاملة باستخدام دعم AMQP 1.0 في ناقل خدمة Microsoft Azure.

الخطوات التالية

لمزيد من المعلومات حول ناقل خدمة Azure والتفاصيل حول كياناتJava Message Service (JMS)، تحقق من الروابط أدناه -