karaf-cellar集群的搭建

1 篇文章 0 订阅

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下的仓库,从远程仓库下载的构件会保存在这个仓库,下一次就直接从本地仓库读取,这是三个仓库里最先查找的一个,只能配置一个。

 

在实际操作中,出现了插件包缓存到~/.m2的默认本地仓库,导致无法更新插件包的问题:

解决办法:1)手动删除缓存的jar包

                2)jar包更新,同步更新版本号

 

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

cluster:feature-uninstall default xx

查看组的feature:

cluster:feature-list default 

cluster:feature-list default |grep xxx

向组添加/移除feature-repo:

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

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

注:1)在karaf安装一些feature时,自动下载的配置文件可能并不正确,导致使

用相关功能的时候报错,注意检查相应的配置文件。

2)在手动更新feature-repo时,先uninstall旧的feature, 移除repo, 再添加repo,install新的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开机自启动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值