Coherence Step by Step 篇 入门(二) 安装Oracle Coherenc

2022-04-12 00:00:00 缓存 目录 工具 脚本 实例

这一篇提供了安装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:

  1. 使用一个文本编辑器,打开Coherence_home/bin/cache-server脚本
  2. 修改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的名和和你电话号码的后四位作为端口号

  3. 保存并关闭cache-server脚本
  4. 重复1到3的步骤来修改Coherence_Home/bin/coherence脚本
  5. 运行cache-server脚本。启动一个缓存服务器,输出信息提供了关于cluster成员的信息。
  6. 运行两个coherence脚本,每个实例启动后,输出信息提供了关于各自的集群成员的信息。每个实例返回了一个对于命令行工具的命令提示符。

4.2 创建缓存

这一步中,缓存被创建,宿主在基本的cluster上。一个简单的字符串被输入进缓存,用个缓存工厂实例的命令行工具。使用第二个缓存工厂实例的命令行工具来检索缓存。这个例子非常的简单但是不实用,但是这是一个快速的演示Coherence缓存的分布式特性。

创建一个缓存:

  1. 在任意一个缓存工厂实例的命令提示符里,创建一个名为Test的缓存。使用cache命令:

           cache Test

  2. 在命令提示符,使用put命令来存放一个简单的字符串进行的缓存,通过键入一个key/value值对(用空格分开):

           put key1 hello 

    这个命令返回显示null。put命令总是返回了一个给定键的以前的值。null值被返回,因为这是这个键的个值。

  3. 切换到另一个缓存工厂实例,从命令提示符创建一个Test缓存,使用cache命令:

           cache Test

  4. 从命令提示符,检索缓存中的字符串,使用get命令,输入键名

           get key1 

    这个命令返回显示hello。任何一个缓存功能进程能够添加和移除缓存条目,因为进程是同一个集群的一部分,并且Test缓存是被所有集群成员所知道的。此外,既然缓存服务器存储了缓存数据的备份,每个缓存工厂进程都能够被关闭,缓存数据仍然存在。

相关文章