个偶然机会使我接处到Corba中间件当时公司还特意让我北京borland公司学习段时间我对其visibroke中间件佩服 5体投地从理论上讲:如果你架设中间层可以实现多台并发运行又能实现负荷平衡还能实现故障热切换那么你就有了99.99999%稳定中间件服务器对此我在学习时间倾赋了所有时间和精力就连女朋友吵着去看长城我都不想去
那现在来说稳定中间件应该是什么样子呢?
对于客户端请求如果发现服务停止可以实现服务无缝转移---这叫不丢失任何服务.
对于多个客户端请求可以讲请求轮巡到区别服务器上---这样叫负荷平摊如果再做到可以根据客户端数量方面地增减服务器数量那就能很通过简单增加服务器实现系统效率提升
最牛是如果你再加上分布式设计个根据服务器负荷平摊特点可以让多个服务器同时为个工作visibroke完全可以做到这点
可以visibroke太贵了好多西就是贵贵得公司放弃这个选择不过对此优秀中间层算法在我脑子里直徘徊后来我换了公司新看中我对中间层理解特聘请我开发中间层到目前为此我中间层也在几个城市 3警系统上安全稳定地运行还没有出现过故障虽然还有很多不完美地方但今天把这些实现算法拿出来提供交流
从纵向上研究:
第:客户端请求实现轮巡
知道了请求需要轮巡就要先知道有那些服务器--- 设计服务器注册注销机制
还要知道请求当前每台服务器上有那些负荷---客户端请求计算机制
然后根据这些计算当前请求由那个服务器来完成任务
第 2:故障热切换
经试验验证故障有 3种情况
A)请求选择服务器前有故障
B)服务器选中后准备开始要服务时故障
C)服务正在进行时发生故障
为解决以上问题我做出如下架构:
• 在客户端开发了安全访问机制保证在有服务存在情况单次访问异常可以容错;同时若访问时发生故障重新请求
• 中间层开发了负荷平衡机制其建立集群对客户端来说是个透明体客户端只需要知道公布服务集群IP地址由负荷平衡自动分配请求;同时服务器发生故障时自动从集群中移去将请求切换至其它正常服务器上(中间层是个无状态多线程分布式应用服务对任何个请求由哪台服务器提供服务都可以达到致目标)
• 其架构如下图:
最新评论