分布式任务调度框架hanzelcast使用

孤街醉人 提交于 2019-12-07 08:23:18

Hazelcast是一个高度可扩展的数据分发和集群平台,提供java.util.{Queue, Set, List, Map}分布式实现及其它特性。
可以作为
a.服务启动:
假设在两台可以通信的服务器A,B上部署hazelcast.
在A,B两台机器上启动hazelcast服务作为两个server节点,
当一台服务器down掉时,另一台机器继续提供服务,因为两个server节点含有相同的共享数据。
cd /a/b/c/hazelcast/bin
nohup ./server.sh > server_node_1.log 2>&1 &
nohup ./server.sh > server_node_2.log 2>&1 &

server.sh脚本如下,在源码的bin目录下
#!/bin/sh

java -server -Xms1G -Xmx1G -Djava.net.preferIPv4Stack=true -cp ../lib/hazelcast-2.1.2.jar com.hazelcast.examples.StartServer


b.监控配置(hazelcast项目提供了监控系统使用情况的war包)
1.拷贝war包:
在\hazelcast-2.1.2目录下有一个mancenter.war包,直接将这个包拷贝到apache-tomcat-6.0.33\webapps目录下
开发过程中将此war包放在C机器(A,B,C三台机器可以互相通信),/a/b/c/apache-tomcat-6.0.33/webapps目录下
2.启动tomcat,查看服务是否启动:
执行/sbin/ifconfig命令,查看tomcat所在目录的ip地址,16.12.23.34,如果windows可以ping这个地址,
可以在windows中打开一个浏览器访问这个地址,查看服务是否启动成功。(端口默认8080)
开发环境中,访问http://16.12.23.34:8080/mancenter连接查看hazelcast使用情况。
3.第二步服务启动正常,证明war本身可用,现在将这个监控地址加到所有的server节点启动所读的配置文件hazelcast.xml上
将tomcat所安装机器的ip写在hazelcast-2.1.2\bin\hazelcast.xml的配置上,监控所有server节点:
 <management-center enabled="true">http://16.12.23.34:8080/mancenter</management-center>
 这样每个server节点的行为都会发送到配置的地址上。

c.客户端程序设计
可以每个线程启动一个客户端,在A上启动十个线程,访问自身的A的server节点,
在B上启动十个线程,访问自身的B的server节点,,当一个server节点down的时候,客户端自动访问另一个server节点。
客户端启动(源码自带的测试代码):
在A或B上,cd /a/b/c/hazelcast/bin
./client.sh
connect 16.12.23.34
16.12.23.35ip是B的机器。
>输入help命令,查看使用方法,这些方法也是开发人员写的测试方法,在开发程序的时候可以参考。
例如q.offer pitt
q.poll就会得到pitt字符串。

其他:
如果一个client端去尝试连接一个down掉的server节点会报错。
如果一个client已经成功连接上一个server节点,假设这个server节点down掉,但是还有其他几点正常工作,client会自动连接正常server节点继续运行。
hazelcast提供了免费监控两个server节点的war包,监控两个以上server节点需要购买licence.

参考:
http://www.oschina.net/p/hazelcast
http://www.hazelcast.com/
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!