مشكلة في التوجيه بين اثنين من الفاصوليا باستخدام جمل Apache

StackOverflow https://stackoverflow.com/questions/3845598

  •  27-09-2019
  •  | 
  •  

سؤال

يرد مسار الجمل أدناه

 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring" >
    <route>
      <from uri="bean:SendClass?method=send" />
      <to uri="jms:MyQueue" pattern="InOnly" />
    </route>
    <route>
    <from uri="jms:MyQueue" />
    <to uri="bean:recvClass?method=recv" />
    </route>
  </camelContext>

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

الحلول الممكنة هي:

  1. هي بعض السمات التي يمكنني وضعها داخل <from.../> لفعل هذا ؟
  2. اكتب معالجًا لتصفية رسالة فريدة بين Send Bean و Learue.
  3. هل طريقة أخرى لتوجيهها دون استخدام <from uri="bean:..." />

شكرا Sanre6

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

المحلول

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

بدلاً من ذلك ، يجب عليك استخدام بعض واجهة برمجة تطبيقات الإبل من داخل رمز الفول وإرسال الرسالة إلى قائمة انتظار JMS. على سبيل المثال باستخدام producertemplate.

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