這一篇提供了安裝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緩存是被所有集群成員所知道的。此外,既然緩存服務器存儲了緩存數據的備份,每個緩存工廠進程都能夠被關閉,緩存數據仍然存在。