HazelCast是一个分布式的数据网格系统。HazelCast有一个重要的功能就是集群管理,它可以自动进行节点发现,并将其加入集群,也支持节点去除,而且提供了api供我们使用,因此我们可以使用其内部的api来进行集群管理和配置。
HazelCast有三种组网协议,MultiCast,TcpIp以及Aws三种,API默认使用MultiCast协议来组网,但是前提是网络环境需要支持MultiCast协议,另外如果集群机器比较多或者不支持MultiCast协议就可以选用TcpIp来组网,另外HazelCast还提供了Aws云方式来进行组网。
简单的HazelCast引入方案:
本例中使用的是TcpIp的组网方式,可以tcpip可以指定加入的机器成员,这样不同环境发布的时候就可以加入不同环境的机器。如果使用MultiCast组网的话,就可以通过指定不同环境的GroupConfig对应不同的名字和密码来组网。这样就可以解决不同环境的组网问题。
思考:HazelCast提供了使用Aws云来组网的方式,我们可以将其当成一个第三方的注册中心。那么问题来了,既然可以支持第三方注入,那么我们是否可以自己写一个呢,例如zookeeper,redis等都可以。答案应该是可以的。翻了下代码,假如增加redis注册,我们可以将Redis的注册地址,端口,密码保存进来,然后重写HazelCast Cluster Config相关的代码,增加RedisConfig,并写相关的ClusterService适配即可。
@程序员,@IT互联网