楼上可能误会了,我描述一下有问题的结果:比如现在队列TEST1里有100条消息,接进来一个Socket作为TEST1的Receiver,并且它发送了50个接收消息的请求,然后就断开了。接着,又接进来一个Socket作为TEST1的Receiver,并且也发送50个接收消息的请求,但是,第二个Socket将只能接收到小于50条的消息。这是因为,在第一个socket收玩50条消息,和该socket断开之间这段时间,那个“检测队列长度并发送消息的线程”又把一些消息写进它的InputStream里,并且从队列中删除了,所以会造成消息丢失。当然了,如果Receiver一直监听队列的话是没有这个问题的,楼上的再帮忙想想:)
以后如何扩展?
如果楼主想自己设计,可以参考他的思路,下面有他的RedBook。http://www.redbooks.ibm.com/redpapers/pdfs/redp0021.pdf