Karaf:简述对Karaf的认识
Karaf是基于OSGI之上建立的应用容器,能方便部署各种选定的组件,简化打包和安装应用的操作难度。Open DayLight项目发布之初,后台框架仅采用OSG技术,但自从第三版氦He版本至今, Open Daylight项目就采用了Kaaf作为后台的框架,明显提升了项目的可用性和灵活性。
Karaf是一个 Apache软件基金会项目,具有 Apache v2许可证。是一个基于实时运行的轻量级的基于OSGI的容器,各种组件和应用都能部署到这个容器中。
一、Karaf 的架构图
二、Karaf 的安装目录结构
/bin: 启动脚本
/etc: 初始化文件
/data: 工作目录
/cache: OSGi框架包缓存
/generated-bundles: 部署使用的临时文件夹
/log: 日志文件
/deploy: 热部署目录
/instances: 含有子实例的目录
/lib: 包含引导库
/lib/ext:JRE扩展目录
/lib/endorsed: 赞同库目录
/system: OSGi包库,作为一个Maven2存储库
三、Karaf的基本特性
Karaf典型的特性有:
- 热部署: Karaf支持 OSGI bundles的热部署。实现这个支持的关键在于 Karaf持续监测[home]/deply目录内的jar文件。每次当一个jar文件被复制到这个文件夹内,它将在运行时被安装。可以更新或删除它,这个改动将被自动处理。此外, Karaf也支持 exploded bundles和自定义的部署(默认包含 blueprint和 spring)
- 动态配置:服务通常通过OsGi服务的配置管理来进行配置。这样的配置可在 Karaf中的[home]/ec目录使用合适的文件进行定义。这样配置被监控,并且属性的改变将传播给服务。
- 日志系统:使用Log4J支持的集中日志后端,Kaaf能支持许多不同的APls(JDK14、JCL、SLF4J、 Avalon、 Tomcat、OSGi)。
- 供应:库或应用的供应( Provisioning)能通过不同的方式完成。供应在本地下载、安装、启动。
- 原生OS整合:Karaf能以服务的方式整合到一个操作系统OS中,这样生命周期就和这个OS相绑定。
- 扩展的内核控制台:Karaf的内核控制台可管理服务,安装新应用或库,并且管理它们的状态。这个内核能通过部署新命令以安装新功能或应用实现动态扩展。
- 远程访问:使用任何的SSH客户端以连接Karaf并且在控制台发出命令。
- 基于JAAS的安全框架。
- 管理实例:Karaf提供简单的命令以管理多实例。通过控制台能简单地创建、删除、启动、终止 Karaf的实例。
四、karaf在 Open Daylight使用中的一些常用命令
- [cmd]-help:获取一个指定命令的相关帮助。
若需要了解 bundle: list命令,则输入:bundle: list --help; Karat将返回有关这个命令的帮助。
- features: list:查看已安装的 features。
- feature: install my_feature:安装本地 feature的命令。
如 feature: install odl-reston。
- feature:uninstall my_feature:卸载已经安装的fm的命令。
如
feature uninstall odl-restconf
- feature: repo-add my repo:将库安装至本地。
如 feature: repo-add camel2.152
- log: display:显示系统日志,可配合grep来筛选需要查看的内容。
- system: shutdown:关闭系统,退出 Karaf。同样也可运行halt命令退出 Karaf。
注意:
- 进入 Karaf的控制台后,按< Tab >键即可显示目前所有可用的命令。
- 控制台支持< Tab >键的输入辅助完成功能,当输入一个命令的前面一些字符时,按< Tab >键后,控制台将自动列出所有可能的命令,并且在只有一个提示命令时自动完成该命令的输入。