مشكلة في التوجيه بين اثنين من الفاصوليا باستخدام جمل Apache
-
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 وإعادة بيع نفس الرسالة (مائة منها في ثانية ).
الحلول الممكنة هي:
- هي بعض السمات التي يمكنني وضعها داخل
<from.../>
لفعل هذا ؟ - اكتب معالجًا لتصفية رسالة فريدة بين Send Bean و Learue.
- هل طريقة أخرى لتوجيهها دون استخدام
<from uri="bean:..." />
شكرا Sanre6
المحلول
يجب ألا يكون لديك المسار الأول. عندما تفعل ذلك ، فأنت تخبر الجمل باستدعاء طريقة إرسالها باستمرار على تلك الفاصوليا وتوجيهها. وبالتالي لماذا ترى 100s من الرسائل لكل ثانية.
بدلاً من ذلك ، يجب عليك استخدام بعض واجهة برمجة تطبيقات الإبل من داخل رمز الفول وإرسال الرسالة إلى قائمة انتظار JMS. على سبيل المثال باستخدام producertemplate.
لا تنتمي إلى StackOverflow