发在J2EE板块没什么响应,这边也发一下
通过Mina2做的消息处理系统服务端  数据结构分为两部分,一本分需要持久化的都保持在数据库里,另外一些不需要持久的则保持在内存当中。 
毕竟一台服务器做处理能力有限, 所以想到了分布式。一直都对分布式方面不了解,请有这方面经验的朋友,给点思路和建议。 

解决方案 »

  1.   

    mina我刚刚看,想学
    分布式的开发没搞过
    帮你顶,看LX的高手关注了
      

  2.   

    我的应用是有热备份的。一台服务器当机在停机前,会将缓存中的数据持久化至磁盘文件中,而另一台服务启动时会从磁盘缓存中取出数据,进而初始化缓存。
    建议你也能在你的应用中添加次功能:Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() {
    startThread.shutdown();
    }
    });
      

  3.   

    楼上的版本只有在正常停止JVM进程的时候才有效。我以为作为高可靠的机制最好受到电文后直接持久化到数据库或本地data文件,并在持久化以后才返回“接受电文正常”的应答。这种方式最保险。对于性能问题,搂住应该考虑应该是“集群”方式,该类方式前段必然存在Proxy,也就是所谓的loadbalancer。
    client只访问loadbalancer,由loadbalancer转发信息到具体的receiver。
    但是对于异步处理的电文其实根本不用loadbalancer,因为你只是简单的持久化message。而且瓶颈很可能出现在数据库或者本地IO这块。(反正具体看你要实现的东西来定架构)我也正在准备写一个类似的东西,只不过不用mina而是自己写一个类似mina的框架。
      

  4.   

    ...接以上
    你给的分数也太少了 -。- nio以及HA,集群。的问题算是比较难的东西了。
      

  5.   

    看看楼住分数少也没办法那么继续“我想要的不是这个结果,希望能集成,并接能处理,一台服务器挂了,其他的顶上。”这种是典型的HA要求...普通的中间件集群都可以做到这一点但是由于你的程序完全自己开发说穿了要自己实现这套机制就是loadbalancer要能判断后台具体的receiver是否失效你这些问题其实系统集成问题 已经不只是开发问题了。
      

  6.   

    你可以参考weblogic集群的机制可以参考用apache编制插件的方式来实现loadbalancer的功能