karaf-cellar集羣的搭建

karaf版本: apache-karaf-4.2.8.tar.gz

karaf安裝: https://mirror.bit.edu.cn/apache/karaf/documentation/4_x.html#_user_guide

jdk版本: jdk-8u201-linux-x64.tar.gz

三臺虛擬機:

192.xx.xx.40

192.xx.xx.41

192.xx.xx.42

 

1. karaf部署

1.1 Java環境

(1)上傳jdk-8u201-linux-x64.tar.gz到/usr/local/jdk目錄

進入/usr/local/jdk目錄

# cd /usr/local/jdk

解壓

# tar -zxvf jdk-8u201-linux-x64.tar.gz

 

(2)設置環境變量

編輯 /etc/profile

# vim /etc/profile

在文檔末尾添加如下配置:

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_201

export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/

export PATH=$PATH:$JAVA_HOME/bin

刷新配置

# source /etc/profile

測試配置是否成功:

# java –version

 

至此,java環境配置完成。

 

1.2 karaf安裝

40服務器:

1.新建目錄/usr/local/karaf

#mkdir /usr/local/karaf

 

2.上傳apache-karaf-4.2.8.tar.gz到/usr/local/karaf目錄

 

3.解壓

# tar –zxvf apache-karaf-4.2.8.tar.gz

# cd apache-karaf-4.2.8

解壓目錄:

bin: 下的文件可以選擇不同的啓動方法

data: karaf運行時一些內容、配置和記錄的輸出方式

data/log: karaf默認的日誌輸出路徑

deploy: 類似tomact的webapp目錄,需要運行的bundle.jar包存入此路徑下,karaf啓動的時候回自動啓動此bundle

etc:karaf的配置文件路徑,karaf所有的配置都在此目錄下

lib: karaf插件依賴的目錄

system: 在karaf中運行的feature和其依賴安裝目錄,卸載feature時會自動刪除

 

4.進入並查看配置文件

# cd /etc

# ls

 

org.ops4j.pax.web.cfg  對外提供的http端口,默認是8181

org.apache.karaf.management.cfg  遠程連接karaf,如使用jmx管理karaf,需修改ip地址

org.ops4j.pax.url.mvn.cfg  karaf連接的倉庫地址配置

 

5.修改倉庫配置文件

# vim org.ops4j.pax.url.mvn.cfg

#本地倉庫

org.ops4j.pax.url.mvn.localRepository=/usr/local/maven/maven-repo

#遠程倉庫

org.ops4j.pax.url.mvn.repositories=http://maven.aliyun.com/nexus/content/groups/public/@id=alimaven,\                              http://zns.commnet.com.cn:8081/nexus/content/repositories/nbrrmpReleasesRepo/@id=nbrrmpReleasesRepo,\                     http://zns.commnet.com.cn:8081/nexus/content/repositories/nbrrmpSnapshotsRepo/@id=nbrrmpSnapshotsRepo

 

注:

1)org.ops4j.pax.url.mvn.repositories 用來配置遠程倉庫,可以配置多個,用逗號分隔。

2)org.ops4j.pax.url.mvn.defaulRepositories 用來配置只讀的本地倉庫,會在查找遠程倉庫之前查找,可以配置多個,用逗號分隔。

3)org.ops4j.pax.url.mvn.localRepository 用來配置本地倉庫,默認用的是~/.m2下的倉庫,從遠程倉庫下載的構件會保存在這個倉庫,下一次就直接從本地倉庫讀取,這是三個倉庫裏最先查找的一個,只能配置一個。

 

6.修改遠程jmx管理遠程連接地址

將rmiRegistryHost = 127.0.0.1和rmiServerHost = 127.0.0.1修改爲rmiRegistryHost = 192.xx.xx.40和rmiServerHost = 192.xx.xx.40

注:41,42服務器上配置本機的ip地址。

 

7.啓動與停止

進入bin目錄

# cd /bin

控制檯啓動

# ./karaf

控制檯關閉

karaf@root()> shutdown –f         # karaf控制檯命令

後臺啓動

# ./start

後臺關閉

# ./stop

 

8.安裝webconsole

karaf@root()> feature:install webconsole

訪問web控制檯http://192.xx.xx.40:8181/system/console,使用karaf用戶名和karaf密碼登錄。

注:在41和42服務器重複上面的部署過程。

2. karaf-cellar集羣部署

2.1 簡介

我們已經完成在每臺服務器上部署了karaf,使用karaf-cellar將各個karaf添加到集羣節點。Karaf-cellar的首要目標是同步幾個Karaf實例(命名節點)的狀態。

cellar能夠同步:

bundles (remote or local)

config

features

cellar節點的發現: 

Cellar uses Hazelcast as cluster engine.

When you install the cellar feature, a hazelcast feature is automatically installed, providing the etc/hazelcast.xml configuration file.

當安裝cellar功能後, 會自動安裝hazelcast並生成一個hazelcast.xml配置文件,通過修改配置文件實現集羣節點的發現與相互註冊。

2.2 karaf-cellar安裝

1.安裝cellar

karaf@root()> feature:repo-add cellar 4.1.3

karaf@root()> feature:install cellar

可以看到已經安裝好了cellar的相關bundle。

2.修改hazelcast.xml

# vim hazelcast.xml

 

<multicast enabled="true">的true 改爲 false

<tcp-ip enabled="false">改爲如下

<tcp-ip enabled="true">

<interface>192.xx.xx.41</interface>

<interface>192.xx.xx.42</interface>

</tcp-ip>

注意:這裏的interface是除本機之外的其他安裝了karaf的服務器地址。

<interfaces enabled="false">改爲如下

<interfaces enabled="true">
    <interface>192.xx.xx.40</interface>
    </interfaces>
    注意:這裏的interface直接填本機ip

同理,在41和42服務器上安裝cellar。

3.啓動karaf集羣

重啓三臺服務器的karaf,使用cluster:node-list命令查看節點。

 

X表示本機

4.karaf-cellar部分命令

cellar組(默認是default),指定組內節點同步資源,可自己創建

cluster:group-create mygroup

安裝bundle:

cluster:bundle-install default mvn:com.google.code.gson/gson/2.4

啓動:

cluster:bundle-start default xxx

安裝feature

cluster:feature-install default xx

查看組的feature:

cluster:feature-list default 

向組添加feature-repo:

cluster:feature-repo-add default mvn:com.demo/karaf_demo_feature/1.0.0/xml 

注:在karaf安裝一些feature時,自動下載的配置文件可能並不正確,導致使

用相關功能的時候報錯,注意檢查相應的配置文件。

3. karaf開機自啓動

1.進入/etc/init.d目錄

# cd /etc/init.d

2.編寫服務自啓動腳本

# vim karaf

腳本內容:
#!/bin/bash

#chkconfig:35 95 1

#description:script to start/stop karaf

su - root <<!

case $1 in

start)

sh /usr/local/karaf/apache-karaf-4.2.8/bin/start

;;

stop)

sh /usr/local/karaf/apache-karaf-4.2.8/bin/stop

;;

*)

echo "Usage:$0(start|stop)"

;;

esac

exit

!

3.賦予權限

# chmod 775 karaf

4.添加服務開機自啓動

# chkconfig --add karaf

5.查看karaf服務狀態

# chkconfig --list karaf

注:三臺服務器都添加karaf開機自啓動。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章