由于Servicemix本身是基于Karaf-OSGI容器,因此集群可以采用Karaf-cellar来进行构建。
Cellar当前有4.*和3.*两个版本分别对应到不同的Servicemix版本,对于Cellar的安装以4.*版本为例,首先可以参考在线的安装文档和手册,具体地址为:
具体的安装过程也相当简单,首先是需要在集群需要管理的不同机器上安装Cellar组件,具体命令为:
karaf@root()> feature:repo-add cellar
karaf@root()> feature:install cellar
整个过程安装时间比较久,需要耐心等待,在安装完成后可以通过如下命令查看已经安装的Cellar组件
karaf@root()> la|grep -i cellar
在安装完成后主要是修改etc目录下的 hazelcast.xml配置文件以进行集群配置。注意对于Cellar默认的集群配置缺省是启用了多播模式,而我们在配置过程中还是采用tcp-ip模式进行配置,
如果现在有192.168.1.1和192.168.1.2两台机器需要配置为集群,则
需要在1.1机器上进行配置,成员为1.2,如下。
192.168.1.2
而在1.2机器上则需要配置TCP成员为1.1,具体如下。
192.168.1.1
在安装和配置完成后,我们可以安装feature或bundle进行测试,例如:
karaf@root()> cluster:feature-install default cellar-webconsole
可以看到,通过该命令安装后,对于该feature将同时安装到两个集群节点下。对于Cellar最大的作用还是可以实现在部署的时候多节点自动部署和同步,当然Cellar本身还提供了http-loadbalance等负载均衡能力。而实际在使用的时候,我们完全可以将Servicemix多个节点直接挂接到类似Proxy等负载均衡软件上面来实现负载均衡,而唯一需要解决的问题还是多节点自动部署的问题。
对于多节点的自动部署,我们自己在研发中进行了自己实现,即通过Servmice提供的jmx接口来实现多个节点的自动部署,可以灵活的配置多个节点信息,部署程序会自动将服务包部署到多个节点上。而对于负载均衡则采用Haproxy来实现负载均衡和冗余。这种方式相当来说更加简单可行。
原文 http://blog.sina.com.cn/s/blog_493a84550102wfns.html