N多个客户端 并发访问jms服务器(并发量很大几乎同一时刻)发送数据,服务器不能立刻返回信息,
但最终会返回一条处理结果消息,我想问一下这种场景是jms能担当。
假如服务器因为承受不了压力,挂掉了,数据是否会丢失?使用钝化数据是否能解决?
希望有这方面经验的朋友来帮下我!谢谢~
解决方案 »
- NoClassDefFoundError: org/apache/lucene/search/Query
- struts2+spring+hibernate 登录
- 哪位大侠教下XDoclet的用法??
- Struts2+spring2+ibatis集成碰到的問題?
- 精通Struts基于MVC的Java Web设计与开发试验的一个小问题?
- 我以前是学asp.net的,我刚学用Struts的MVC2来做jsp网页,看了很多资料,有些东西很糊涂的,我对MVC2和asp.net中的三层结构的关系的理解如下
- 哪有weblogic的中文配置文档?请告诉下载地址,谢谢!
- 关于jndi和EJB的一个小问题
- java里面怎么用全局变量呀?
- 在eclipse中配置了一个基础struts的test测试action,但是启动访问不了页面
- 【急】request.getParameter("");返回null
- 分布式缓存(memcached)的数据同步问题
◎ JMS支持对消息进行持久化(如依赖数据库),那么服务器挂掉不会丢数据,但性能会损失不少;
◎ 不同厂商的JMS实现,其可靠性存在差异,所以需要多找找不同产品的评测报告;
◎ 客户端数量如果过多,只用一个JMS队列会有问题,可启用多JMS队列或集群来分流;
◎ 服务器返回消息的方式,是设计难点之一,如果都是受控的内部系统,可以进行反向JMS投递;
这个没太明白什么意思,我知道可以持久化到数据库中,但我想问下,如果因为其他原因导致服务器挂掉,或者说停电等不可预知的风险,但后来通过巧修让服务器能够在此正常启动了,还在排列当中的数据是否会丢失?
基本不会丢失,这种情况下相当于消息队列是间接用数据库实现的。JMS服务器收到消息后会第一时间写入数据库,但这过程中可能丢是,即便是数据库自身也同样有发生丢失的可能性,或者硬盘坏了等等。但丢失可能性应该是非常低的。如果你要做极高可靠的系统,比如银联这样的涉及钱的,必须要有对账或结算等二次确认的保障机制!!