لم أكتب حذاء الربيع لفترة طويلة. صادفت أن أكتب حافلة الربيع السحابية مؤخرًا. نظرًا لأن المحتوى سيكون له بعض الأهمية ، سأضيف منشورًا حول تكامل AMQP.
مقدمة إلى وسيط الرسائل و AMQP
وسيط الرسائل هو نموذج معماري للتحقق من الرسائل ونقله وتوجيهه. تستخدم أهداف التصميم بشكل أساسي في السيناريوهات التالية:
AMQP هو اختصار بروتوكول قائمة انتظار الرسائل المتقدمة ، وهو بروتوكول طبقة التطبيق القياسية المفتوحة للرسالة الوسيطة. يحدد AMQP هذه الميزات:
الأرنب
RabbitMQ الذي سيتم تقديمه في هذه المقالة هو منتج من البرامج الوسيطة التي يتم تنفيذها مع بروتوكول AMQP. يمكن أن تدعم أنظمة تشغيل متعددة ولغات برمجة متعددة ، ويمكن أن تغطي جميع منصات التكنولوجيا على مستوى المؤسسة السائدة تقريبًا.
ثَبَّتَ
في صفحة التنزيل لموقع RabbitMQ الرسمي https://www.ribbitmq.com/download.html ، يمكننا الحصول على حزم التثبيت والتعليمات لمختلف أنظمة التشغيل. هنا ، سوف نشرح العديد من المنصات الشائعة الاستخدام واحدة تلو الأخرى.
فيما يلي وصف الإصدار لخادم Erlang و RabbitMQ الذي نستخدمه:
تثبيت Windows
تثبيت Erland ، احصل على حزمة تثبيت EXE من خلال صفحة التنزيل الرسمية http://www.erlang.org/downloads ، افتحها مباشرة وأكمل التثبيت.
قم بتثبيت RabbitMQ واحصل على حزمة تثبيت exe من خلال صفحة التنزيل الرسمية https://www.ribbitmq.com/download.html.
بعد اكتمال التنزيل ، قم بتشغيل المثبت مباشرة.
بعد اكتمال تثبيت خادم RabbitMQ ، سيتم تسجيله تلقائيًا كخدمة ويبدأ بالتكوين الافتراضي.
تثبيت Mac OS X
يمكن استخدام أداة Brew Tool في Mac OS X بسهولة تثبيت خادم RabbitMQ ، فقط اتبع الأمر التالي:
من خلال الأمر أعلاه ، سيتم تثبيت أمر RabbitMQ Server في/usr/local/sbin ولن تتم إضافته تلقائيًا إلى متغيرات بيئة المستخدم ، لذلك نحتاج إلى إضافة المحتوى التالي إلى .bash_profile أو ملف .profile:
المسار = $ path:/usr/local/sbin
وبهذه الطريقة ، يمكننا بدء خادم RabbitMQ من خلال أمر RabbitMQ-Server.
تثبيت Ubuntu
في Ubuntu ، يمكننا استخدام مستودع APT للتثبيت
تثبيت erlang وتنفيذ: apt-get تثبيت erlang
قم بتنفيذ الأمر التالي لإضافة مستودع مناسب إلى /etc/apt/sources.list.d
Echo 'deb http://www.ribbitmq.com/debian/ اختبار Main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
قم بتحديث قائمة حزمة مستودع APT وتنفيذ الأمر Sudo APT-GET Update
قم بتثبيت خادم الأرانب وتنفيذ أمر Sudo APT-GET تثبيت RabbitMQ-Server
إدارة الأرانب
يمكننا إدارته مباشرة من خلال الوصول إلى ملف التكوين ، أو من خلال الوصول إلى الويب. أدناه سنقدم كيفية الإدارة من خلال الويب.
قم بتنفيذ أمر RabbitMQ-Plugins ، تمكين RabbitMQ_Management لتمكين مكون إدارة الويب الخاص بإدارة الويب حتى نتمكن من إدارته من خلال المتصفح.
> rabbitmq-plugins تمكين rabbitmq_management تم تمكين الإضافات التالية: mochiweb webmachine rabbitmq_web_dispatch amqp_client rabbitmq_management_agent rabbitmq_managementapplying configration to rabbit@pc-201602152056 ... بدأت 6 الإضافات.
افتح المتصفح وزيارة: http: // localhost: 15672/، وقم بتسجيل الدخول مع ضيف المستخدم الافتراضي ، وكلمة المرور هي أيضًا ضيف. يمكننا رؤية صفحة الإدارة في الشكل التالي:
من الشكل ، يمكننا أن نرى بعض المفاهيم الأساسية المذكورة في الفصل السابق ، مثل: الاتصالات ، والقنوات ، والتبادلات ، وقائمة الانتظار ، وما إلى ذلك. يمكن للقراء الذين يستخدمونه للمرة الأولى النقر فوقه لمعرفة المحتوى الذي لديهم ويتعرفون على جانب الخادم من خادم RabbitMQ.
انقر فوق علامة تبويب المسؤول لإدارة المستخدمين هنا.
دمج التمهيد الربيع
أدناه ، لدينا شعور بديهي وفهم لـ RabbitMQ من خلال دمج RabbitMQ في تطبيق Spring Boot وتنفيذ مثال بسيط لإرسال الرسائل واستلامها.
يعد دمج RabbitMQ في Boot Spring أمرًا سهلاً للغاية ، لأننا قدمنا POMs Starter من قبل ، ويمكن أن تدعم وحدة AMQP RabbitMQ جيدًا. لنتحدث عن عملية التكامل بالتفصيل:
قم بإنشاء مشروع Boot Spring جديد يسمى "Rabbitmq-Hello".
في POM.xml ، يتم تقديم التبعيات التالية ، حيث يتم استخدام Spring-Boot-Starter-AMQP لدعم RabbitMQ.
<Arnal> <roupiD> org.springframework.boot </rougiD> <ArtifactId> Spring-Boot-Starter-Parent </shintifactid> <sophy> 1.3.7.Release </version> <RIBERAPPARD/>!-PANTUP من المستودع- <StifactId> Spring-Boot-Starter-AMQP </stifactid> </sependency> <reperence> <roupiD> org.springframework.boot </groupid> </rependency>
تكوين الاتصال ومعلومات المستخدم حول RabbitMQ في application.properties. يمكن للمستخدمين العودة إلى محتوى التثبيت أعلاه وإنشاء مستخدمين في صفحة الإدارة.
spring.application.name = rabbitmq-hello
spring.RabbitMq.host = localHostSpring.RabbitMq.port = 5672Spring.RabbitMq.Username = SpringSpring.RabbitMq.Password = 123456
إنشاء مرسل منتج الرسائل. تحدد واجهة AmqPtemplate مجموعة من العمليات الأساسية لبروتوكول AMQP عن طريق حقن مثيل واجهة AmqPtemplate. في صندوق الربيع ، سيتم حقن تطبيقه المحدد وفقًا للتكوين. في هذا المنتج ، ننشئ سلسلة ونرسلها إلى قائمة انتظار تسمى Hello.
مرسل ComponentPublic Class {AUTowired Private AmqPtemplate RabbitTemplate ؛ public void send () {String Context = "Hello" + New Date () ؛ System.out.println ("المرسل:" + سياق) ؛ this.rabbittemplate.convertandsend ("Hello" ، Context) ؛ }} قم بإنشاء جهاز استقبال المستهلك للرسالة. يحدد @rabbitlistener الاستماع إلى الاستماع إلى قائمة انتظار Hello في هذه الفئة ، ويستخدم التعليق التوضيحي @Rabbithandler لتحديد طريقة المعالجة للرسالة. لذلك ، يدرك المستهلك استهلاك قائمة انتظار Hello ، وعملية الاستهلاك هي محتوى سلسلة رسالة الإخراج.
@component @rabbitlistener (queues = "hello") جهاز استقبال الفئة العامة {rabbithandler public process (String hello) {system.out.println ("Receiver:" + Hello) ؛ }} قم بإنشاء فئة تكوين RabbitMQ ، والتي يتم استخدامها لتكوين معلومات متقدمة مثل قوائم الانتظار والمفاتيح والتوجيه. نحن نركز هنا على البدء وتحديده أولاً بتكوين الحد الأدنى لإكمال عملية الإنتاج والاستهلاك الأساسية.
ConfigurationPublic Class RabbitConfig {bean public queue helloqueue () {return new Queue ("Hello") ؛ }} إنشاء فئة التطبيق الرئيسية:
springbootapplicationpublicpublic placplication {public static void main (string [] args) {springapplication.run (helloapplication.class ، args) ؛ }} قم بإنشاء فئة اختبار الوحدة لاتصال إنتاج الرسائل:
Runwith (SpringJunit4ClassRunner.Class) springapplicationConfiguration (classes = helloapplication.class) class public helloapplicationtests {Auutowired private sender ؛ test public void hello () rems {sender.send () ؛ }}بعد الانتهاء من كتابة البرنامج ، حاول تشغيله. تأكد أولاً من أن خادم RabbitMQ قد بدأ ، ثم إجراء العمليات التالية:
ابدأ الفئة الرئيسية للتطبيق ، من وحدة التحكم ، نرى المحتوى التالي ، يقوم البرنامج بإنشاء اتصال للوصول إلى SpringCloud في 127.0.0.1:5672.
انسخ الرمز على النحو التالي: OsArcCachingConnectionFactory: تم إنشاء اتصال جديد: SimpleConnection@29836d32 [DepeGate = AMQP: //[email protected]: 5672/]
في الوقت نفسه ، من خلال لوحة التحكم RabbitMQ ، يمكننا أن نرى أن الإدخالات التي تحتوي على الاتصال الحالي في الاتصال والقنوات.
قم بتشغيل فئة اختبار الوحدة ويمكننا رؤية الإخراج التالي في وحدة التحكم ، ويتم إرسال الرسالة إلى قائمة انتظار Hello لخادم RabbitMQ.
المرسل: Hello Sun Sep 25 11:06:11 CST 2016
التبديل إلى وحدة التحكم في الفئة الرئيسية للتطبيق ، يمكننا رؤية الإخراج التالي ، يقوم المستهلك بتنفيذ برنامج المستمع لقائمة انتظار Hello ويخرج معلومات الرسالة المستلمة.
المتلقي: Hello Sun Sep 25 11:06:11 CST 2016
من خلال المثال أعلاه ، قدمنا وحدة SPRING-BOOT-Starter-AMQP في تطبيق SPRING BOOT ، وتم تكوينها ببساطة لإكمال محتوى تطوير إنتاج رسائل RABBITMQ واستهلاكه. ومع ذلك ، في التطبيقات الفعلية ، لا يزال لدينا الكثير من المحتوى الذي لم يتم توضيحه ، لذلك لن نقدم المزيد من التفسيرات هنا. يمكن للقراء التحقق من دروس RabbitMQ الرسمية بمفردهم لاكتساب فهم أكثر شمولاً.
مثال كامل: الفصل 5-2-1
المصدر المفتوح الصين: http://git.oschina.net/diidispace/springboot-learning/tree/master/chapter5-2-1
Github: https://github.com/dyc87112/springboot-learning/tree/master/chapter5-2-1
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.