这一篇提供了安装Oracle Coherence的指导。本篇不包括安装Coherence×Extend 客户端分布式或者Coherence×Web的指导。
1. 系统需求
安装Coherence的开发环境,最小的系统配置建议:
- 65兆的磁盘空间
- 1G的内存(假设Java堆的大小是512兆)--这个数量的内存能够理想的支持在单个节点上最大缓存大小为150MB,这个节点配置了备份所有数据(150×2),并且剩余1/3的用来给java堆和jvm的任务。
- 1.6 update 23 的JVM或者更新
- windows或者基于unix的系统,支持指定版本的java
- 网络适配器
2.提取安装文件
Coherence以zip的文件形式来分发。使用zip工具 或者unzip命令工具来提取zip文件到目标地算计的其它目录。提取的文件被组织到了一个名为coherence的目录。完整的coherence的路径被COHERENCE_HOME引用,贯穿了整个文档。例如C:\INSTALL_DIR\coherence.
下面的例子使用了unzip工具来提举文件到/opt目录,这是在基于unix操作系统的建议的安装路径。使用目标操作系统支持zip工具的,如果unzip工具不能用。
unzip /path_to_zip/coherence-version_number.zip -d /opt
下面的例子使用了unzip工具提取了文件到C:\目录,在windows操作系统上。
unzip C:\path_to_zip\coherence-version_number.zip -d C:\
下面的列表描述了目录包含在COHERENCE_HOME:
- bin-这个目录包含了一组用来执行不同任务的通用的脚本,如:启动一个缓存服务,启动开发工具,执行网络测试。脚本支持window(.cmd)和UNIX(.sh)格式。
- doc-这个目录包含了Coherence文档的链接。
- lib-这个目录包含了所有的类库的分发。这个Coherence.jar是主要的开发和运行时类库,下面会详细讨论。
3.设置环境变量
下面的系统环境变量需要被设置,但是他们不是运行Coherence所必须的
- JAVA_HOME-这个变量用来运行包含在COHERENCE_HOME/bin目录下的脚本文件。这个变量的值是java安装目录的完整路径。如果JAVA_HOME没有设置,脚本使用极端及默认的java安装。设置这个变量确保脚本使用一个指定的java版本。
- COHERENCE_HOME-这个变量通常是为了方便而设置的。这个变量的值是INSTALL_DIR/coherence目录的完整路径。
4.第一次运行Coherence
COHERENCE_HOME/bin目录包含了两个脚本,在开发和测试时使用,作为设计时的方便。cache-server脚本用默认的配置文件启动了一个缓存服务。coherence脚本用默认的配置启动一个缓存工厂的实例。这个缓存工厂包含了一个命令行工具,用来创建和与缓存交互。
这个场景,基本的cluster被创建,接着命令行工具用来创建和宿主在cluster上的缓存交互。
4.1 创建基本cluster
在这一步,基本的缓存被创建,包含了三个独立的java进程:一个缓存服务器和两个缓存工厂的实例。为了简单起见,这三个进程在一台计算机上。缓存服务器,默认的,配置了存储备份数据。两个缓存工厂实例,默认的,配置了不存储备份数据。如每个进程启动后,自动的加入和成为cluster成员(也成为集群节点)。
例如,Coherence的即用的默认配置只要很小的改动就能创建一个唯一的cluster,来保证这些cluster成员不会尝试加入一个网络上已经存在的Coherence cluster。
NOTE:Coherence默认的形式是用多播来寻找cluster。Coherence能够被配置为使用单播,如果网络中不允许使用多播。
创建一个基本的Cluster:
- 使用一个文本编辑器,打开Coherence_home/bin/cache-server脚本
- 修改java_opts变量,包含tangosol.coherence.cluster和tangosol.coherence.clusterport系统属性如下:
set java_opts="-Xms%memory% -Xmx%memory% -Dtangosol.coherence.cluster=cluster_name -Dtangosol.coherence.clusterport=port" 替换cluster_name和端口号的值,对于cluster是唯一的。例如,使用你的名字来定义cluster的名和和你电话号码的最后四位作为端口号
- 保存并关闭cache-server脚本
- 重复1到3的步骤来修改Coherence_Home/bin/coherence脚本
- 运行cache-server脚本。启动一个缓存服务器,输出信息提供了关于cluster成员的信息。
- 运行两个coherence脚本,每个实例启动后,输出信息提供了关于各自的集群成员的信息。每个实例返回了一个对于命令行工具的命令提示符。
4.2 创建缓存
这一步中,缓存被创建,宿主在基本的cluster上。一个简单的字符串被输入进缓存,用第一个缓存工厂实例的命令行工具。使用第二个缓存工厂实例的命令行工具来检索缓存。这个例子非常的简单但是不实用,但是这是一个快速的演示Coherence缓存的分布式特性。
创建一个缓存:
- 在任意一个缓存工厂实例的命令提示符里,创建一个名为Test的缓存。使用cache命令:
cache Test
- 在命令提示符,使用put命令来存放一个简单的字符串进行的缓存,通过键入一个key/value值对(用空格分开):
put key1 hello
这个命令返回显示null。put命令总是返回了一个给定键的以前的值。null值被返回,因为这是这个键的第一个值。
- 切换到另一个缓存工厂实例,从命令提示符创建一个Test缓存,使用cache命令:
cache Test
- 从命令提示符,检索缓存中的字符串,使用get命令,输入键名
get key1
这个命令返回显示hello。任何一个缓存功能进程能够添加和移除缓存条目,因为进程是同一个集群的一部分,并且Test缓存是被所有集群成员所知道的。此外,既然缓存服务器存储了缓存数据的备份,每个缓存工厂进程都能够被关闭,缓存数据仍然存在。