服务器的连接情况?

你好,banq:
我最近在研究服务器的代码,遇到一个情况,我想了很久,不知道我的想法OK不
情况是这样的,我们现在的项目分 web端(前台)—>EB数据端(后台,数据服务接口)。这个2个项目。问题就是,我们现在在web端需要拿到EB端的接口代理(就是正常的连接上),然后接口代理来调用接口供前端使用,现在的代码实现:是这样的,用户点击调用,然后我们去拿一个连接,取得代理接口,然后吧代理接口放入缓存中,下次同服务接口的请求,就不用连接服务器了,直接从cache里面拿接口代理来使用,后来我发现一个问题,就是第一次请求,EB服务器是正常的,第二次我把服务器停了,从cache拿出了的接口代理肯定不可以的。所以代码又加了一个,每次用户请求都要去连接一下服务器,看是否是正常的。我觉得这样的实现机制不好。
我有一个想法,就是监控,就是我在web端和EB端中间加上一层,就是服务器监控层,具体怎么做,我还没有想好,我只有这个想法,我说的监控就是,我想使用消息传输中间件来做,比如activeMq,rabbitmq的这种机制来实现,服务器想做成实时的更新,那样很消耗资源啊,一直扫描,我就想我隔一段时间把我这个服务的接口代理当成消息来进行管理实现,第一次EB服务器正常,第二次来不正常了,利用这种消息机制在后台去管理服务器的连接,然后主动的给Web端使用。我不知道这样的想法对不,请banq分析分析,建议这样的情况该怎么样设计好一些,谢谢!!
[该贴被javawebkaifa于2012-07-23 08:07修改过]

缓存Hold住EB的代理Proxy实例,如果EB当机,就会出错,因此需要有一套机制能够发现EB当机,并及时通知缓存,这个机制实际是分布式系统的心跳机制heartbeat。

你可以在Web和EB之间增加zookeeper之类代理网关,由它来负责对后面的EB健康进行自动维护