前面了解了cache的几种模式,在jboss Datagird中,根据这几种模式,定义了几种启动方式。
之前也有提到jboss datagrid有library,remote client server的使用模式,那就从这两种使用模式来分别说明。
■Remote Client Server
1.Standlone模式
standalone模式,它使用的是cache本地模式,以单一的Red Hat JBoss Data Grid实例动作。
启动方法:
$JDG_HOME/bin/standalone.sh
这条命令,默认加载了$JDG_HOME/standalone/configuration/standalone.xml这个配置文件。
从standalone.xml文件来看,可以看出该配置文件中定义的cache是local-cache
2.cluster启动模式
集群启动模式是指,可以启动复数个RedHat Jboss DataGrid标准实例,来构成一个集群
启动方式:
$JDG_HOME/bin/standalone.sh -c clustered.xml
这里指定了$JDG_HOME/standalone/configuration/clustered.xml这个配置文件,该配置文件里使用了之前提到集群cache模式的distributed-cache
3.domain启动方式
以domain的方式启动,可以将多个服务器的实例及同一台服务器上的多个实例作为一个组,通过domain controlde 管理控制台进行一元化管理。这种方式其实对用户来说,和集群方式是没有区别,区别的只是在于系统管理员的管理方便而言的,集群的那种启动方式,启动每一个实例都需要执行上面启动命令,而且没有办法对它们统一管理而对于domain的这种启动方式,它可以通过配置,可以管理整个集群中的所有实例。
启动方式:
$JDG_HOME/bin/domain.sh
这里会默认调用$JDG_HOME/standalone/configuration/目录下的domain.xml和host.xml文件
通过domain.xml文件里的配置,可以看着这中方式的启动,默认也是使用的distributed-cache模式。
■Library
因为和远程客户端服务器的架构模式不一样,所以启动方式,实现方式是不一样的。
1.单一结点的设点,也就是相当于远程客户端服务器的standalone模式。
Quickstart.java
package org.infinispan.quickstart.embeddedcache;
import org.infinispan.Cache;
import org.infinispan.manager.DefaultCacheManager;
public class Quickstart {
public static void main(String args[]) throws Exception {
Cache<Object, Object> c = new
DefaultCacheManager().getCache();
}
}
这个类中做成了DefaultCacheManager,然后因为没有指定cache名,所以使用了模式的cache模式(local)来创建缓存。
2.多节点的设定,其实就是cluster的模式
下面主要看一下replication,distribution模式的设定,启动
设定
代码设定:
配置文件的设定:
启动:
replication启动
$ java -cp target/classes/:target/dependency/*
org.infinispan.quickstart.clusteredcache.replication.Node0
$ java -cp target/classes/:target/dependency/*
org.infinispan.quickstart.clusteredcache.replication.Node1
distribution启动
$ java -cp target/classes/:target/dependency/*
org.infinispan.quickstart.clusteredcache.distribution.Node0
$ java -cp target/classes/:target/dependency/*
org.infinispan.quickstart.clusteredcache.distribution.Node1
$ java -cp target/classes/:target/dependency/*
org.infinispan.quickstart.clusteredcache.distribution.Node2