مقدمة
من خلال تطوير الإنترنت ، تم توسيع نطاق تطبيقات الموقع بشكل مستمر ، ولم يعد بإمكان هياكل التطبيقات الرأسية التقليدية التعامل معها. بنية الخدمة الموزعة والهندسة المعمارية للحوسبة المتنقلة ضرورية. Dubbo هو إطار خدمة موزع ، ولد في هذه الحالة. الآن يتم استخراج الأعمال الأساسية كخدمة مستقلة ، بحيث يمكن للتطبيقات الأمامية أن تستجيب بسرعة أكبر وثابتة.
ما هو دوبو
Dubbo هو إطار الخدمة الموزعة المصدر المفتوح لـ Alibaba. أكبر ميزة لها هي أنه منظم بطريقة ذات طبقات. يمكن أن تفصل هذه الطريقة (أو تزيد من اقتران فضفاض) بين الطبقات. من منظور نموذج الخدمة ، يتبنى Dubbo نموذجًا بسيطًا للغاية ، إما أن يوفر المزود الخدمات أو المستهلك يستهلك الخدمات. لذلك ، بناءً على هذه النقطة ، يمكننا تجريد دور مزود الخدمة ومستهلك الخدمة. حول مركز التسجيل ، ودعم الاتفاقية ، ومراقبة الخدمة والمحتويات الأخرى
ماذا يمكن أن يفعل دوبو
عندما يصبح موقع الويب أكبر ، سيكون من المحتم أن يتم تقسيم التطبيق وخدمة (Microservices) لتحسين كفاءة التطوير ، وتحسين الأداء ، وتوفير الموارد التنافسية الرئيسية ، إلخ.
نظرًا لأن المزيد والمزيد من الخدمات ، ستنفجر معلومات عنوان عنوان URL للخدمة ، تصبح إدارة التكوين صعبة للغاية ، ويصبح الضغط الواحد لموازن تحميل الأجهزة F5 أكبر وأكبر.
عند مزيد من التطوير ، تصبح التبعيات بين الخدمة معقدة وحتى لا يمكن معرفة التطبيق الذي بدأ من قبل التطبيق ، لا يمكن للمهندسين المعماريين وصف العلاقة المعمارية للتطبيق بالكامل.
بعد ذلك ، يصبح عدد مكالمات الخدمات أكبر وأكبر ، وتعرض مشكلة سعة الخدمة. ما مقدار دعم الماكينة التي تتطلبها هذه الخدمة؟ متى يجب أن أضيف الجهاز؟ إلخ……
عند مواجهة هذه المشكلات ، يمكنك استخدام Dubbo لحلها.
ما أشاركه معك هذه المرة هو التكوين الأولي لتطبيق Dubbo Framework واستخدام مركز تسجيل Zookeeper ؛ عندما يتعلق الأمر بمركز التسجيل ، لا يوجد سوى نوعين من الأشياء التي استخدمتها: Zookeeper و Eureka. يمكنني استخدام ZK مع Dubbo ، و Eureka مع SpringCloud. لذلك ، سوف أشارككم بعض الفصول حول الخدمات الصغيرة في وقت لاحق ، على أمل أن تكون مفيدة لك.
قم بتثبيت Zookeeper مركز التسجيل
مزود ومستهلك إطار عمل دوببو
نشر Dubbo-Admin
قم بتثبيت Zookeeper مركز التسجيل
بادئ ذي بدء ، نحتاج إلى البحث في عنوان تنزيل Zookeeper عبر الإنترنت. أنا على نظام Linux ، لذلك قمنا بتنزيل حزمة Zookeeper-3.3.6.tar.gz وقمنا بإلغاء الضغط عليها من خلال tar -zxvf zookeeper-3.3.6.tar.gz. تجدر الإشارة إلى أن ملفات التكوين في الحزمة العامة هي إصدار العينة الافتراضي ، واسم ملف التكوين الافتراضي لـ ZookeEper هو فقط zoo.cfg. من أجل عدم تحديد اسم الملف في كل مرة ، نحتاج إلى إنشاء ملف تكوين يسمى Zoo.cfg في دليل Conf. يمكن نسخ محتوى الملف من zoo_sample.cfg أو إعادة تسمية الملف. المحتوى كما يلي Vim Zoo.cfg:
# عدد المليون ثانية من كل tickticktime = 2000 # heartbeat تردد # عدد القراد الذي يمكن أن تأخذه مرحلة التزامن الأولي # واتخاذ قرار = 10 # restrict # عدد القراد الذي يمكن أن يمر بين # إرسال طلب والحصول على إقرار المجلد # المنفذ الذي سيقوم العملاء به ConnectClientPort = 2081 #zOokeeper المنفذ الخارجي
لن أقوم بتعديل معلومات المعلمة هنا ، وأستخدم الافتراضي ؛ قدم بإيجاز العديد من الأوامر شائعة الاستخدام حول كيفية تحرير محتوى الملف في Linux:
Vim Zoo.cfg: عرض محتوى الملف
إدراج: قم بتنفيذ أمر إدراج
ESC: إلغاء الأمر ، ثم اضغط على: س: الخروج ،: WQ: حفظ والخروج
عندما يكون لدينا Zoo.cfg ، نحتاج فقط إلى إدخال دليل BIN الخاص به للعثور على ملف zkserver.sh ، وبدء تشغيل مركز تسجيل Zookeeper من خلال تنفيذ أمر بدء التشغيل/zkserver.sh. موجه بدء التشغيل العادي هو كما يلي:
عادةً ما يكون ZookeEper على خادم منفصل كمركز تسجيل ، ويحتاج البرنامج (يشير هنا إلى محلي) إلى استدعاء مركز تسجيل آخر. بالإضافة إلى ذلك ، يحتاج مركز التسجيل إلى التحقق مما إذا كان يمكن توصيل منفذ Zookeeper المفتوح. My Local Is Windows 10 ، لذلك لا تحتاج إلى التحقق من المنفذ من خلال عميل ZookeEper. تحتاج فقط إلى استخدام Telnet IP 2081 لاكتشاف ما إذا كان المنفذ مفتوحًا ؛
مزود ومستهلك إطار عمل دوببو
بادئ ذي بدء ، للراحة ، نحتاج إلى تحديد واجهة موحدة ، وهي الواجهة العامة التي يستخرجها الشركة. نقوم بتعبئة هذه الواجهة بشكل منفصل في وحدة نمطية. هنا Dubbo_api. نحدد الواجهة التالية في هذه الوحدة:
الواجهة العامة sterveservice {list <Muser> getUsers () ؛ }بعد ذلك ، قم بإنشاء وحدة مزود ، والتي تعتمد على وحدة DubBO_API وتنفذ واجهة مستخدمي المستخدمين ، يكون الرمز كما يلي:
فئة public orperviceImpl تنفذ المستخدمين {value ("$ {server.port}") منفذ int الخاص ؛ / ** * regurn */ Override Public List <Muser> getUsers () {list <Muser> list = new ArrayList <> () ؛ لـ (int i = 0 ؛ i <5 ؛ i ++) {mouser user = new mouser () ؛ user.setuserName ("shenniu" + i) ؛ user.setUserPWD ("المنفذ:" + منفذ) ؛ list.add (user) ؛ } قائمة الإرجاع ؛ }}كمزود خدمة ، لاستخدام إطار Dubbo ، تحتاج أولاً إلى تقديم Dubbo ثم القيام ببعض التكوينات. أولاً ، نحتاج إلى تقديم تبعيات Dubbo من خلال Maven في وحدة DubBo_Provider. يتم استخدام Zookeeper في مركز التسجيل ، لذلك نحتاج أيضًا إلى إدخال التبعيات المقابلة من خلال Maven:
<Rependency> <roupeD> org.apache.zOokeEper </rougiD> <intifactid> zookeeper </shintifactid> <الإصدار> 3.4.8 </version> </repreadency> <sperency> <rougid> com.101tec </rougiD> <rougiD> com.alibaba </rougiD> <StifactId> dubbo </artifactId> <الإصدار> 2.5.3 </version> <s qust requorting> <Section> <roupiD> org.springframework </rougiD> </stifiD> spring </strifactid> </assactions> <StifactId> dubbo_api </stifactid> <soph> 0.0.1-snapshot </version> </reperence>
بعد الانتهاء من التبعية ، تتمثل الباقي في تكوين مزود Dubbo ، وإنشاء ملف التكوين للموارد/Dubbo-Conf/Server.xml ، ومحتوى الملف:
<؟ xmlns: dubbo = "http://code.alibabatech.com/schema/dubbo" http://code.alibabatech.com/schema/dubbo العنوان = "192.168.168.168:2081" /> <!-استخدم بروتوكول Dubbo لفضح الخدمة في المنفذ 20880 ، منفذ اتصال البروتوكول-> <DubBo: name protocol = "dubbo" port = "20880" /> <! التنفيذ-> <bean id = "userservice"/> </bans>
أضف Resource ImportEmporTresource ("classpath: dubbo-conf/*. تحقق من سجل بدء التشغيل:
لا يوجد استثناء عندما يبدأ مزود الخدمة. دعونا نلقي نظرة على المتصل لإنشاء وحدة نمطية من dubbo_consumer ، وكذلك تقديم تبعيات الوحدة النمطية لواجهة Dubbo_api العامة ، ثم قم بإنشاء UserController ، وفضح واجهة مستخدم Get:
RestControllerPublic Class USERCONTROLLER getMapping ("/user") قائمة عامة <Muser> getUsers () {return orperService.getusers () ؛ }}مستخدمي المستخدمين هنا هو حقن الواجهة العامة ؛ بعد الانتهاء من الترميز ، يقدم جانب المستهلك تبعيات Dubbo و Zookeeper:
<Rependency> <roupeD> org.apache.zOokeEper </rougiD> <intifactid> zookeeper </shintifactid> <الإصدار> 3.4.8 </version> </repreadency> <sperency> <rougid> com.101tec </rougiD> <Gropled> com.alibaba </rougiD> <StifactId> dubbo </stifactid> <sophy> 2.5.3 </version> <s qust revalusion> <Section> <roupiD> org.springframework </roupiD> <StifactId> Spring </stiftiD> </assactions>
نقوم أيضًا بإنشاء ملف تكوين مع Name Resources/Dubbo-Conf/Client.xml ونقدم هذا المورد في إدخال التطبيق:
ImporTresource ("classpath: dubbo-conf/*. }}محتوى التكوين الخاص بـ client.xml كما يلي:
<؟ xmlns: dubbo = "http://code.alibabatech.com/schema/dubbo" http://code.alibabatech.com/schema/dubbo العنوان = "192.168.168.168:2081" /> <!-واجهة خدمة المستخدم-> <dubbo: مرجع معرف = "مستخدمي" interface = "service.userservice" /> < /beans>
في هذا الوقت ، يتم إكمال مزود خدمة بسيط وتكوين وترميز المتصل والتشفير ، والوحدات الثلاث هي كما يلي:
ثم ابدأ المزود والمستهلك على التوالي ؛ ثم اطلب الواجهة من خلال واجهة وحدة التحكم المكشوفة من قبل المستهلك. عنواني هنا هو http: // localhost: 8082/user
التأثير هو أن المستهلك يحصل على النتيجة التي يتم إرجاعها من قبل مزود من خلال استدعاء واجهة usterveservice التي تم حقنها ، مما يعني أيضًا أن الاستخدام البسيط لإطار Dubbo كان يعتبر ناجحًا.
نشر Dubbo-Admin
بصفته إطارًا شهيرًا لـ RPC ، فإن Dubbo لديه أداة مراقبة المصادر المفتوحة Dubbo-Admin. يجب أن أقول إن حزمة dubbo-admin.war الجاهزة على الإنترنت لا يمكن استخدامها الآن أو تحتاج إلى تنزيل نقاط CSSDN. هناك العديد من الإصدارات وهي صعبة بعض الشيء. انتقل بشكل حاسم إلى Git لسحب الكود المصدر وحزمه بنفسك. عنوان GIT هو: https://github.com/apache/incubator-dubbo-ops. بعد سحبها لأسفل ، نحتاج فقط إلى الانتباه إلى مشروع Dubbo-Admin ، ويمكن تجاهل أشياء أخرى في الوقت الحالي ؛ بعد فتح المشروع ، نحتاج فقط إلى تعديل تكوين الشاشة التالي (يمكنك أيضًا تعديل ملف التكوين المعبأ):
#zOokeeper عنوان التكوين ومنفذ dubbo.registry.address = zookeeper: //127.0.0.1: 2081#backend login password dubbo.admin.root.password = rootdubbo.admin.guest.password = Guest
بعد تنفيذ الحزمة ، يمكنك الحصول على الاسم: حزمة Dubbo-Admin-2.0.0.war ، ثم وضعها في Tomcat ، وتصفح المتصفح. الحساب وكلمة المرور كلاهما جذر ؛ بعد تسجيل الدخول ، يمكنك رؤية المزود والمستهلك الذي بدأناه من قبل. هذه هي واجهة خدمة مركز تسجيل مراقبة Dubbo-Admin. يمكنك النقر مباشرة على هذه الخدمات. إذا لم تقل الكثير ، جربه بنفسك.
عنوان GIT: https://github.com/shenniuboxing3 حزمة نشر Nuget: https://www.nuget.org/profiles/shenniuboxing3
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.