Chúng tôi hiện đang phát triển một ứng dụng bằng JMS và activemq (5.5.1). Chúng tôi muốn xác định mức độ ưu tiên cao hơn cho một số thư, điều này sẽ khiến chúng bị tiêu thụ trước tiên. Sau khi thiết lập nhà sản xuất và người tiêu dùng (thông qua mùa xuân (3.1) JMSTemplate), ưu tiên không hoàn toàn hoạt động. Thật vậy, khi chúng tôi "tắt" người tiêu dùng và gửi một số tin nhắn, ưu tiên được tôn trọng, nhưng khi chúng tôi thêm tin nhắn trong khi người tiêu dùng đang bật, các tin nhắn được nhận theo cùng thứ tự mà họ đã gửi.Ưu tiên với activemq
Cấu hình khá đơn giản:
ưu tiên đã được kích hoạt trong file config ActiveMQ:
<policyEntries>
<policyEntry queue=">" prioritizedMessages="true"/>
...
</policyEntries>
Và QoS được kích hoạt trong sản xuất mẫu cấu hình:
<bean id="jmsOCRTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="defaultDestination" ref="destination_ocr" />
<property name="explicitQosEnabled" value="true" />
</bean>
Để gửi với mức độ ưu tiên cao, chúng tôi chỉ thay đổi thuộc tính ưu tiên của mẫu ở phía bên sản xuất:
template.setPriority(9);
Bất kỳ ý tưởng nào? Đây có phải là hành vi bình thường hay có một số cấu hình mà chúng ta đã quên?
Bạn có thể muốn cung cấp cho các ActiveMQ mới nhất 5.6-SNAPSHOT một đi như nó có một số bản sửa lỗi trong lĩnh vực ưu tiên có thể cải thiện tình trạng của bạn. –