读书人

要害应用服务的集群技术模拟

发布时间: 2012-11-06 14:07:00 作者: rapoo

关键应用服务的集群技术模拟
集群技术,也就是俗称的Cluster,是为了保证某种应用不间断的服务而采取的一种技术手段。

主旨
服务运行在A,B两台机器上,其中一台为主用机,一台为备用机。备用机不断检测主用机的心跳信息。当发现主用机宕机或不能提供服务的时候,会自动转变为主用机,继续提供服务。

实现细节包括主备用机之间的心跳协议,物理线缆连接方式,以及虚拟出来的服务接口。

其他都还好说,不过虚拟服务接口的确不是很容易实现的。本文对虚拟服务接口技术做了模拟。

虚拟接口,实际是指虚拟的IP地址以及在这个IP地址接口侦听的应用服务。

由于客户机并不会自动改变请求服务的IP地址和端口,因此集群必须提供一个唯一的对外服务接口,并实现主备之间的无缝转换。

方案
虚拟接口我以为有两种办法:
第一种,在计算机上虚拟一块网卡出来,然后把服务绑定到这块网卡上;

第二种,把指向虚拟IP的IP协议包以及ARP协议包转到主机实际存在的网卡上。

我这里是使用了JPCAP工具,实现了第二种方案。

具体要做两件事:
实现ARP协议的ARP_REPLY;转发IP包。
实现的时候发现,如果使用JPCAP直接转发ICMP包的话会出现问题。

ECHO_REPLY不能被识别,造成Ping不通的现象。

之后研究了ICMP的头结构,发现是在REPLY的时候不能自动填充id和seq,修改之后运转正常。

 

读书人网 >软件架构设计

热点推荐