Jakarta ee 将MDB池与某些类型的消息一起使用的最佳实践

Jakarta ee 将MDB池与某些类型的消息一起使用的最佳实践,jakarta-ee,ejb,jms,Jakarta Ee,Ejb,Jms,使用MDB处理多种类型的消息、使用多个队列、一个队列处理一种类型的消息,或者使用一个队列处理所有类型、使用不同的激活规范选择器和消息头类型的最佳实践是什么?我认为(与任何情况一样)需要考虑一些权衡: 让队列执行单个定义良好的函数有助于实现良好的封装,并使您的应用程序尽可能灵活且封装良好。这将增加诸如特定于队列的线程池之类的可能性,因此您可以将更多资源专用于一种消息类型,或者确保一次性类型的长时间运行请求不会阻止另一种类型的更紧急的请求 另一方面,添加队列会占用系统资源,因此,队列过多可能会导致效

使用MDB处理多种类型的消息、使用多个队列、一个队列处理一种类型的消息,或者使用一个队列处理所有类型、使用不同的激活规范选择器和消息头类型的最佳实践是什么?

我认为(与任何情况一样)需要考虑一些权衡:

让队列执行单个定义良好的函数有助于实现良好的封装,并使您的应用程序尽可能灵活且封装良好。这将增加诸如特定于队列的线程池之类的可能性,因此您可以将更多资源专用于一种消息类型,或者确保一次性类型的长时间运行请求不会阻止另一种类型的更紧急的请求

另一方面,添加队列会占用系统资源,因此,队列过多可能会导致效率低下(尽管您需要很多时间才能注意到这一点),或者在难以识别特定消息类型的正确队列时造成混乱

值得考虑的一个EIP是-它使用单个队列执行多个操作。还值得注意的是,即使您的应用程序在内部使用了许多不同的队列,您也可能更喜欢使用门面从客户机系统中显示这些队列