0

我们计划用 Java 实现我们的新系统。由于系统的性质,需要与各种内网/外网/互联网系统交互,并与各种外部系统共享相同的逻辑(稍作调整),我们计划将业务逻辑移出前端,使其成为服务,并计划使用JMS来互连表示层和业务逻辑层。表示层发送请求,业务逻辑层对处理结果发送响应。

在做了一个小型的 POC 系统后,我们发现这种方式非常有前景。但是 Oracle 的人(我们计划将 weblogic 用于 ap 服务器和 JMS 服务器)说总会有性能问题,因为消息队列的本质不是请求-响应模式。

对甲骨文家伙的意见有什么建议吗?我们对 Java 世界还很陌生(完全没有关于 Java 的经验,必须在内部实现这个系统,没有外包选项),尽管我们以每秒大约 300 个 req-resp 的速度测试了我们的 POC(这似乎对我们的系统),我们仍然无法确定系统上线后是否肯定会出现性能下降......

4

1 回答 1

2

绝对不是这样的性能问题。

由于 JMS 的事务性质,您会有些损失。来自表示层的消息必须在业务层开始处理之前记录在日志中,同样必须在表示层开始处理回复之前记录回复。

然而,这个小缺点被重负载期间并行处理的能力以及在极端负载下安全排队请求的能力所弥补。(在这些情况下,RPC 应用程序只是简单地死掉了,JMS 只是慢了下来)。

主要问题是处理异步环境中的错误。如果您的表示层发送一个请求,在假设业务服务器端出现问题之前,它应该合理地等待多长时间的回复?如果表示层炸毁了您应该如何处理回复消息,特别是如果它是某种更新?所有这些问题都可以解决,但是,您需要考虑如何解决。

于 2012-04-11T02:46:43.087 回答