2012-07-27 57 views
0

我们有一个基于JMS的消息应用程序,每天处理大约200万条消息。JMS体系结构 - 平衡设计原则与体积

现在我们还有一项额外的功能将启动,影响总消息的60%,即每天120万条消息。 该计划是有一个内部队列上,我们将转发该消息该附加特征

认为到目前为止,2个设计方案是:

一)转发所有邮件到第2个队列在其上消息驱动的bean(MDB)将处理它们 - 这将第一个应用程序与根本不需要此功能的应用程序隔离开来。

b)在原始应用程序,筛选出只有60升%的体积并转发给必要的队列 - 从而减少不必要的交通内部

所以基本上平衡设计VS册 - 哪种方式shuld我们去哪里?

回答

1

备选案例B.未来可能会给您带来前景。在两个业务应用程序中保持这样的过滤逻辑几乎不是一个好主意 - 考虑未来对过滤规则的更改会触发两个应用程序的新版本。

1.2M信息/天是一个相当多的数字,如果消息不是微小的。如果系统可以处理数量,那么解决方案A)是构建和处理时间最简单的方法。我会做一些负载测试,如果一切正常,请继续b)。

根据您正在构建的plattform等等,许多中间件和消息传递产品提供了可应用于中间件而不是实际应用中的逻辑和过滤功能。

[First Queue] -> Middleware, Copy All -> [Orig Appl. input queue] 
          , Filter -> [New application input queue] 

例如,这可以很容易地通过Apache Camel在几行XML中配置。