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

توضح هذه المقالة كيفية استخدام واجهة برمجة تطبيقات خدمة رسائل Java (JMS) 2.0 الشائعة للتفاعل مع ناقل خدمة 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( وجهة الوجهة)
  • JMSContext.createConsumer( وجهة الوجهة، 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(الوجهة الوجهة)
  • JMSContext.createConsumer( وجهة الوجهة، String messageSelector)
  • JMSContext.createConsumer( Destination, String messageSelector, boolean noLocal)

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

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

للاستفادة من جميع الميزات المتوفرة في المستوى المتميز، أضف المكتبة التالية إلى مسار بناء المشروع: azure-servicebus-jms. توفر هذه الحزمة بعض الإعدادات الافتراضية الضرورية مثل قيم نهج الإحضار المسبق، ونهج إعادة الاتصال، ومعرف Microsoft Entra، ودعم الهوية المدارة خارج الصندوق.

إشعار

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

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

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

الاتصال بناقل خدمة 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.