java - 用于请求-响应模式的 JMS

标签 java jms

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

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

对于 Oracle 人的意见有什么建议吗?我们对 Java 世界相当陌生(完全没有关于 Java 的经验,必须在内部实现这个系统,没有外包选项),尽管我们以每秒大约 300 个请求响应测试了我们的 POC(这对于我们来说似乎足够了)系统),我们还不能确定系统上线后是否一定会出现性能下降...

最佳答案

绝对不是性能问题。

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

然而,这个小缺点可以通过在重负载期间并行处理的能力以及在极端负载下安全地对请求进行排队的能力来弥补。 (在这些情况下,RPC 应用程序就会直接死掉,JMS 就会变慢)。

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

关于java - 用于请求-响应模式的 JMS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10099060/

相关文章:

java - Java 中的 USSD 菜单浏览器

java - 创建 Eclipse SVN "virtual branches"?

java - 如何在我的 Android 应用程序中添加对 Android 4.4 的支持

java - ActiveMQ Broker 只能在本地主机上连接

java - IBM MQ JMS 消息监听器

java - Tibjms javax.jms.JMSException : Connection unknown by server

java - 自定义自动配置的 Spring Boot Bean

java - 在 Java 中将字符串从 Windows 字符集转换为 UTF 8

java - Camel "Succesfull delivery acknowledgements"

ssl - 发送方 channel 端的 MQ 是否验证接收方 channel 端的 MQ 证书?