当前位置 博文首页 > 莫忘、初心:Karaf-cellar 集群配置

    莫忘、初心:Karaf-cellar 集群配置

    作者:[db:作者] 时间:2021-08-04 21:55


    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安装

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

    配置hazelcast

    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中定义集群组。
    组中可以可以定义需要在一起运行的特殊节点和资源。
    使某些节点(不在组内的)不需要与组内节点的变化进行同步。

    默认情况下,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
    

    集群资源和集群组


    feature

    Cellar可以操作集群组上的功能和存储库。

    cluster:{feature命令} {群组名称}

    karaf@root()> cluster:feature-repo-list default
    

    bundle

    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}
    

    HTTP Balancer

    Apache Karaf Cellar能够在集群上的节点上公开servlet。
    客户端(浏览器)可以使用集群中的任何节点,
    将请求代理到实际托管servlet的节点。

    启用HTTP Balancer

    要启用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的节点上边

    cs
    下一篇:没有了