当前位置 博文首页 > 莫忘、初心:Karaf-cellar 集群配置
karaf安装: https://zhaosongbin.blog.csdn.net/article/details/88393574
linux下jdk安装:https://zhaosongbin.blog.csdn.net/article/details/87914745
Karaf Cellar的第一个目标是同步几个Karaf实例(命名节点)的状态:
Cellar提供专用的shell命令和JMX MBean来管理集群,并操纵集群上的资源。
cellar能够同步:
Bundles
config
features
第二个目标是提供分布式OSGi运行:
使用Cellar,可以调用位于远程实例上的OSGi服务
Cellar还通过提供以下专用功能来提供“运行时集群”:
HTTP负载平衡
HTTP会话复制
日志集中请参阅
karaf@root()> feature:repo-add cellar
karaf@root()> feature:install cellar
Cellar内部使用了hazelcast实现的集群功能
编辑文件==etc/hazelcast.xml ==文件
修改如下:
<multicast enabled="true"> true 改为 false
<tcp-ip enabled="false"> 改为如下
<tcp-ip enabled="true">
<member>集群其他节点的ip</member>
</tcp-ip>
注意:这里的member是除本机之外的其他安装了karaf的电脑
<interfaces enabled="false"> 改为如下
<interfaces enabled="true">
<interface>192.168.100.*(本机ip的网卡)</interface>
</interfaces>
注意:这里的interface是启用本机的哪个网卡
修改完成之后,保存,重启karaf
当安装了Cellar,Karaf实例自动成为一个Cellar集群的节点,因此会尝试发现其他Cellar节点。
可以使用list-nodes命令来列出已知的Cellar节点:
karaf@root()> cluster:node-list
可以在Cellar中定义集群组。
组中可以可以定义需要在一起运行的特殊节点和资源。
使某些节点(不在组内的)不需要与组内节点的变化进行同步。
默认情况下,Cellar节点属于default组:
karaf@root()> cluster:group-list
group-create命令来创建一个新的组:
karaf@root()> cluster:group-create my
新建的组中还没有任何节点:
karaf@root()> cluster:group-list
使用cluster:group-join可以往组里面增加node也就是其他karaf节点的ip
karaf@root()> cluster:group-join node
Cellar可以操作集群组上的功能和存储库。
cluster:{feature命令} {群组名称}
karaf@root()> cluster:feature-repo-list default
Cellar可以操纵群集组中的bundle。
使用以下命令列出群集组中的bundle:
cluster:bundle-list {集群组} {bundle id}
Apache Karaf Cellar能够在每个节点上集中和管理所有集群节点的日志服务
Cellar的集中日志是cellar组件中的可选功能,所以如果启动的话我们需要安装这个功能
karaf@root()> feature:install cellar-log
命令显示群集上或群集中特定节点上的所有日志消息。
ALL 关键字表示任何记录器的日志消息。
如果没有参数,此命令将显示来自集群中所有节点的日志消息
cluster:log-display ALL {IP}:{PORT默认5701}
显示最后出现的异常,同样可以指定某个节点
karaf@root()> cluster:log-exception-display
cluster:log-clear命令清除日志消息:
如果没有参数,该命令将清除群集上的所有日志消息:
karaf@root()> cluster:log-clear
您可以指定我们仅删除日志消息的节点(ID或别名):
karaf@root()> cluster:log-clear {ip}:{port}
Apache Karaf Cellar能够在集群上的节点上公开servlet。
客户端(浏览器)可以使用集群中的任何节点,
将请求代理到实际托管servlet的节点。
要启用Cellar HTTP Balancer,您必须先安装http和http-whiteboard功能:
karaf@root()> feature:install http
karaf@root()> feature:install http-whiteboard
安装cellar-http-balancer功能
karaf@root()> feature:install cellar-http-balancer
也可以在群集组中的所有节点上安装此功能:
karaf@root()> cluster:feature-install default cellar-http-balancer
我们在一个节点上安装webconsole功能
karaf@root()> feature:install webconsole
使用下面的命令查看集群中的所有http服务
karaf@root()> cluster:http-list default
我们访问任意一个节点的http地址,即可访问到这个节点的服务
因为这些服务已经映射到了所有安装Balancer的节点上边