سؤال

كمستخدم ربيع محنك ، كنت أفترض أن تكامل الربيع سيكون أكثر منطقية في مشروع حديث يتطلب بعض قدرات المراسلة (JMS) (المزيد من التفاصيل). بعد بعض الأيام التي تعمل مع تكامل الربيع ، لا يزال يبدو وكأنه الكثير من النفقات العامة للتكوين بالنظر إلى مقدار القنوات التي يتعين عليك تكوينها لجلب بعض الاتصالات (الاستماع إلى قوائم قوائم JMS المختلفة) في مكانها.

لذلك كنت أبحث عن بعض المعلومات الأساسية كيف يختلف الإبل عن تكامل الربيع ، ولكن يبدو أن المعلومات تجنيها ، لقد وجدت:

السؤال هو: ما هي التجارب التي أجريتها على استخدام المكدس الواحد على الآخر؟ في أي سيناريوهات ستوصي بجملها ، كان تكامل الربيع يفتقر إلى الدعم؟ أين ترى إيجابيات وسلبيات كل منها؟ أي نصيحة من مشاريع العالم الحقيقي موضع تقدير كبير.

هل كانت مفيدة؟

المحلول

نختار الإبل عبر الاندماج الربيعي لأن واجهة برمجة التطبيقات بطلاقة لطيفة حقًا. نستخدمه بالفعل في مشاريع الربيع ونستخدم الربيع لتكوين جزء منه. واجهة برمجة تطبيقات البرمجة واضحة وهناك مجموعة كبيرة من المكونات المعقولة.

لقد قمنا بإطلاق النار على نطاق صغير وبشكل أساسي في ذلك الوقت للاطلاع على متطلباتنا. نستخدمها بشكل أساسي لنقل ملفات البيانات الداخلية إلى/من الأطراف الخارجية التي تتطلب عادة تحويلات تنسيق إرسالها باستخدام FTP/SFTP/... أو إرفاقها بالبريد الإلكتروني وإرسالها.

وجدنا دورة تحرير-compile-debug انخفضت. تتم إضافة مكافآت ذات جروفي لتجربة إنشاء مكافآت.

إن الاندماج الربيعي هو منتج رائع أيضًا ، وأنا متأكد تمامًا من تلبي احتياجاتنا أيضًا.

نصائح أخرى

أوصي فقط بتكامل الربيع إذا كان لديك بالفعل مشروع ربيع وكان عليك فقط إضافة بعض التكامل "الأساسي" باستخدام الملف ، FTP ، JMS ، JDBC ، وما إلى ذلك.

Apache Camel لديه مزايزتان رئيسيتان:

  1. العديد من التقنيات الأخرى مدعومة.
  2. علاوة على ذلك ، (جيد) XML DSL ، هناك واجهات برمجة التطبيقات بطلاقة لجافا ، Groovy و Scala.

نظرًا لأن Apache Camel لديه تكامل جيد جدًا مع Spring ، فقد كنت أستخدمه بدلاً من ذلك إذا كان تكامل الربيع في معظم مشاريع الربيع.

إذا كنت بحاجة إلى مزيد من التفاصيل ، فيمكنك قراءة تجاربي في منشور مدونتي: مدلل للاختيار: أي إطار تكامل لاستخدامه - تكامل الربيع ، بغل ESB أو Apache Camel؟

لقد أجريت مؤخرًا عملية تبادل لإطلاق تكامل الجمل مقابل الربيع بهدف الاندماج أباتشي كافكا. على الرغم من كونه مطورًا رائعًا في الربيع ، إلا أنني وجدت للأسف شكوكي في مجموعة Spring التي تنمو باستمرار: الربيع رائع مثل IOC-container ليكون بمثابة غراء لإطار عمل آخر ، لكنه يفشل في توفير بدائل قابلة للحياة ل تلك الأطر. قد تكون هناك استثناءات لهذا ، أي كل ما يتعلق بـ MVC ، من أين جاء الربيع ومن أين يقوم بعمل رائع ، ولكن محاولات أخرى لتوفير وظائف جديدة على رأس ميزات الحاويات قصيرة ثلاثة أسباب و ال قضية استخدام Si Kafka يؤكد كل منهم:

  • إدخال من الصعب استخدام DSL لتكوين XML.
  • صفحات رمز التكوين XML للحصول على جميع مكونات الإطار السلكية.
  • الموارد المفقودة لتوفير الوظائف على قدم المساواة مع أطر مخصصة.

الآن ، عد إلى نتائج إطلاق النار: الأهم من ذلك أنني معجب بالمفهوم الإبل العام الطرق بين نقاط النهاية. تتكامل Kafka بسلاسة مع هذا المفهوم وثلاثة أسطر من التكوين كافية للحصول على كل شيء. تتم معالجة المشكلات التي واجهتها أثناء العملية بدقة وثائق واسعة من فريق المشروع وكذلك الكثير من الأسئلة على Stackoverflow. أخيرًا وليس آخرًا ، هناك أ تكامل شامل في الربيع هذا لا يترك أي رغبات لم تتحقق.

مع SI على العكس من ذلك ، فإن وثائق تكامل كافكا هي مكثفة جدا وما زال يفشل في شرح كيفية دمج كافكا بوضوح. دمج كافكا مضغوط في طريق عمل الأشياء ، مما يضيف تعقيدًا إضافيًا. الوثائق الأخرى ، على سبيل المثال على stackoverflow هي أيضا أقل وفرة وأقل فائدة من الجمل.

استنتاجي: التمسك الإسكافي بتجارتك - استخدم الربيع كحاوية وجمل كإطار تكامل النظام.

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

يعد الحصول على تبادل لإطلاق النار على نطاق صغير فكرة جيدة جدًا ، فقط تأكد من أنك تحاول القيام بنوع الأشياء التي عادة ما تقوم بها في المشروع.

-ديسلياير: أنا ملتزمة تكامل الربيع

معظم مقارنات الإبل و SI التي رأيتها لا تأخذ ما يلي في الاعتبار:

1.) التأثير الذي أحدثه حذاء الربيع على إنتاجية المطور لتكامل الربيع

2.) تأثير Spring XD على إتاحة تطبيقات تكامل الربيع مع عدم وجود تجميع رمز - أيضًا مصادر SPRING XD ومصارفها هي ببساطة محولات قناة تكامل الربيع ، عندما تتطلع إلى تمديد SPRING XD.

3.) تأثير Spring XD على صنع تكامل الربيع الموحد ، دفعة الربيع ، بيانات الربيع (+Hadoop!) في مكدس واحد ، يجلب بشكل فعال معالجة الدُفعات والتيار ، ودعم HDFS/Apache Hadoop ، وأكثر من ذلك بكثير لتكامل الربيع.

4.) تأثير التكامل الربيعي الذي سيتم إصداره قريبًا 4.0 Java DSL https://github.com/spring-projects/spring-integration-extensions/wiki/spring-integration-java-dsl-reference

من اجل احترامك،

/بيتر (إخلاء المسئولية أعمل في Pivotal)

نحن نستخدم تكامل الربيع لتطبيقنا ونفكر الآن في الانتقال إلى Apache Camel حيث واجهنا الكثير من المشكلات مع إطار تكامل الربيع. هنا زوجان من القضايا.

  1. يقوم CachingConnectionFactory الذي يوفر Spring بفتح 1000 من اتصالات الخمول في IBM MQ وليس هناك ما يضمن إعادة استخدام هذه الاتصالات. وما زالت هذه الاتصالات ستبقى مفتوحة إلى الأبد مما يخلق مشاكل على جانب MQ. اضطررت إلى إعادة تشغيل التطبيق كل أسبوع في بيئات منخفضة فقط لتحديث الاتصالات. يوفر Apache Camel أيضًا التخزين المؤقت ويبدو أن الاتصالات ترتفع/لأسفل بناءً على الحمل.

  2. الربيع لا يوفر المحركات لمعلمات جودة الخدمة. حتى إذا قمت بتمكين جودة الخدمة ، فسيضيع وضع التسليم وخصائص انتهاء الصلاحية/الجدول الزمني (سأثير مشكلة JIRA لهذا الغرض). يعالج Apache Camel هذا ويتم إرسال معلمات QOS إلى تطبيقات المنبع وعدم إسقاطها.

أنا أعمل الآن على مشكلات في التعامل مع الاستثناءات والمعاملات مع Apache Camel والتي بدا أن الربيع تعامل بشكل أفضل مع AOP.

في الواقع ، أود أن أقول أن FTP قد تخرجت من فترة الحضانة. يمكنك إجراء بحث بسيط على منتديات SI/JIRA لمعرفة الميزات الجديدة التي تم تنفيذها والأخطاء التي تم إصلاحها. من بين الثرثرة المختلفة ، يبدو أن هناك بالفعل بعض استخدامات الإنتاج منه ، لذلك أقترح إعطائه نظرة ثانية وبالطبع تواصل مخاوفك لنا عبر

http://forum.springsource.org/forumdisplay.php؟42-integration
https://jira.springsource.org/browse/int

هتاف أوليغ

إخلاء المسئولية: أنا ملتكب تكامل الربيع

Apache Camel هو إطار جيد للغاية وكامل للغاية أيضًا. ولكن إذا كان تطبيقك يستخدم الربيع ، فإن نصيحتي الشخصية هي استخدام تكامل الربيع.

تكامل الربيع هو إطار تكامل شكوى EIP للنظام الإيكولوجي للمصدر الربيع. لديها تكامل ممتاز مع النظام الإيكولوجي: SPRING BOOT ، BATCH ، XD ؛ حتى الأساس يستخدم نفس التجريد بدءًا من إطار الربيع 4. تم نقل بعض تجريد المراسلة في الإطار ، كدليل على أن تجريد الرسائل الأساسية لتكامل الربيع قوي للغاية. الآن Spring Framework على سبيل المثال ، استخدم تجريد المراسلة لشبكة Spring Web ، ودعم Socket على الويب.

شيء جيد آخر في تطبيق الربيع مع تكامل الربيع الاحترام لاستخدام Apache Camel هو أنه مع تكامل الربيع ، يمكنك استخدام سياق تطبيق واحد فقط. تذكر أن سياق الإبل هو سياق الربيع. إذا كانت لديك فرصة لاستخدام إصدار ربيع جديد ، أقترح استخدام Spring Integration Java DSL للتكوين. أستخدمه في مشاريعي الجديدة ، ويشعر أكثر قابلية للقراءة والوضوح. آمل أن يساعدك هذا الانعكاس في تقييمك.

أحد أسباب استخدام الإبل عبر تكامل الربيع هو عندما تحتاج إلى مجموعة EIP أكثر ميزة. لا يوفر تكامل الربيع تجريدات على أشياء مثل Threadpool.

يوفر الإبل بنيات إضافية لهذا تبسيط بعض جوانب العمل مع التعليمات البرمجية المتزامنة:

http://camel.apache.org/camel-23-threadpool-configuration.html

إذا لم تكن لديك حاجة لهذا النوع من الأشياء وتريد فقط توصيل الملف ، فإن نقاط نهاية JMS ، FTP وما إلى ذلك ... ثم استخدم تكامل الربيع.

يعمل الجمل كوسائط وسيطة للتطبيق حيث يمكن للمرء تنفيذ نمذجة البيانات وتحويل قيم الرسائل وتصميم الرقصات للرسائل.

إذا كان تطبيقك الحالي في فصل الربيع ويتطلب ميزات مدعومة من خلال تكامل الربيع من EIP ، فإن تكامل الربيع هو الخيار الأفضل آخر يتطلب المزيد من الدعم/البروتوكولات/الملفات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top