有一段时间没有更新博客了,最近有很多朋友在问怎么部署,今天更新一下,专门讲讲OSMP的编译和部署以及开发调试!
OSMP的部署很简单,分为三部分:
工程导入和编译:
1:从osmp(http://git.oschina.net/wyuxiao729/osmp)下载整个工程到本地电脑
2:将工程导入eclipse
File->Import...->选Maven 下的 Existing Maven Projects -> RootDirectory Browse...选择osmp下载的本地目录 -> 勾选 Add project(s) to working set 填入osmp -> Finish
选择Package Explorer视图右上角的下拉三角形,切换到Working Sets模式下,方便查看项目管理和查看
eclipse会自动下载所依赖的jar,这个过程可能第一次稍微有点儿久,耐心等待!
下载完成后,可以在Work Sets的 osmp-parent目录下右键选 Maven - > Update Projects...刷新一下
在osmp-parent 工程下点右键 Run As... - > Maven Install 编译全部工程
依赖Zookeeper安装:
zookeeper安装网上很多教程,这里不细讲,推荐大家通过docker的方式跑一个zookeeper起来。
数据库脚本导入:
将osmp工程目录下的osmp.sql脚本导入 mysql数据库
ServiceMix部署:
- servicemix最好能部署到linux环境下,在windows环境下服务器启动和停止功能不能使用。
- 将osmp工程下的 apache-servicemix-5.1.0.rar解压并上传到linux服务器上,配置好jdk环境,这里强调一下osmp只能在jdk1.7以上的环境下运行。
- osmp只能跑在servicemix-5.0.1版本下,osmp里使用spring不支持spring4,如果大家要使用高版本,请自行将osmp里spring版本升级到4以上,osmp框架经过生产环境的检测,已经在线上稳定运行2年多,大家可以自行升级spirng或servicemix版本进行测试和研究!
配置文件修改:
进入${SERVICEMIX_HOME}/etc目录, 修改com.osmp.config.cfg文件,修改 zookeeper.url=10.2.1.49:2181 为你实际部署的zookeeper地址保存并退出
进入${SERVICEMIX_HOME}/etc/datasource目录, 修改 com.osmp.jdbc.properties 数据库配置文件,特别注意一下 osmp.jdbc.name=osmp 一定要与数据库实际名称一致。
Servicemix开启远程debug功能:
由于在eclipes环境搭建osgi环境非常的麻烦,对于依赖包的管理也不是非常的方便,因此建议直接在karaf或者servicemix里通过远程调试代码。
进入${SERVICEMIX_HOME}/bin目录 vim 编辑 servicemix文件 在 “export KARAF_SCRIPT” 之后新增一行 “export KARAF_DEBUG=true” 保存退出
授权
chmod 755 ${SERVICEMIX_HOME}/bin/*
启动
${SERVICEMIX_HOME}/bin/start 或 ${SERVICEMIX_HOME}/bin/servicemix 前者启动后守护进程 ,后者启动直接进入控制台,如果使用前者启动,通过 ssh -p 8101 smx@localhost 后输入密码 smx 登录控制台
PS:5005为远程调试端口,只有开启了debug功能才会出现。 至此我们的服务节点已经跑起来了。
服务发布:
在控制台上通过 list 命令可以看到已经布的服务组件,以osmp- 开头的为osmp初始的服务和基础组件,我已经在上传到git上的时候就打到${SERVICEMIX_HOME}/deploy目录下了
大家可以将自己的服务通过ftp或其它方式上传到${SERVICEMIX_HOME}/deploy目录下即完成服务的发布。也可以通过osmp-web管理界面的bundle管理进行发布。
注:如果通过karaf部署的话,需要自己安装所依赖的bundle包括 spirng,webconsole,cxf,camel等。servicemix默认没有安装 webconsole,需要手动安装webconsole,命令为:features:install webconsole,也可以添加servicemix启动时自动安装
vim ${SERVICEMIX_HOME}/etc/org.apache.karaf.features.cfg 在 featuresBoot后添加 ",webconsole" 即可。
OSMP-web管理后台部署:
osmp-web是 osmp的管理后台,直接部署到jetty或tomcat等web服务器即可,具体部署过程不多说,只说一下需要修改配置的地方。
classpath目录下的 dbconfig.properties 数据库配置,按实际修改,spring-main.xml 最下面的 zookeeper按实际修改即可。
访问:
http://localhost:8080 用户名: admin 密码:12345
登录以后,新增或修改服务器 注意管理界面url 服务器ssh端口、用户名、密码的填写,执行脚本路径是按lunux下osmp/bin的路径。新增或修改服务器后,可以在组件列表查看当前服务节点上安装的组件。
修改监控组件上报地址:
- osmp-monitor 是 节点监控组件,也是在osgi环境下camel使用的一个demo,修改osmp-monitor配置文件 bundle-context.xml 将 配置文件中的 <camel:to uri="http://192.168.4.202:8080/servers/jvmMomitor.do"></camel:to> 中IP和端口修改为osmp-web服务器的IP和端口。
- 在osmp-monitor工程上右键 Run As... - > Maven Install 重新编译打包, 在osmp-web 组件管理里 安装/升级 - > 选择刚刚打包编译的 osmp-monitor jar包 在线安装。
- 安装完成后,可以查看服务器管理里服务器的状态和在系统监控 - > 性能监控查看服务器的性能。
至此 osmp 部署基本结束,后续还会继续博客还有很多关于osmp的高级功能和基于osmp框架下的服务组件的开发等内容。敬请期待!!!
如果在部署过程中有任何不明白的地方欢迎加 qq:335898216 交流
相关推荐
《 OSGi实战》是学习OSGi的全面指导,利用与架构和开发人员相关的示例清楚地讲解OSGi概念,同时探讨了很多实践场景和技术,阐述了开发人员有多需要OSGi,怎么将OSGi嵌入其他容器中,将遗留系统移入OSGi的最佳实践,...
在OSGI实战教程中,首先需要了解OSGI(Open Services Gateway Initiative)是一个由众多IT公司共同制定的Java模块化标准规范,旨在实现软件组件的热插拔和服务动态管理。OSGI技术允许应用程序通过动态地安装、启动、...
为了弥补OSGi规范在应用指导方面的不足,四位活跃在OSGi开发第一线的技术专家联手打造了《OSGi实战》。《OSGi实战》面向OSGi规范的使用者,系统、全面、深入地阐述OSGi的重要特性及其使用方法。《OSGi实战》还介绍了...
OSGI(Open Services Gateway Initiative)是一种Java模块化系统,它允许开发者将应用程序分解为一系列可独立部署、更新和交互的服务。林昊所著的《OSGI实战》与《OSGI进阶》是深入理解OSGI技术的重要参考资料,适合...
其中,"OSGI实战.pdf"着重于实践操作,而"osgiopendoc2.pdf"可能包含了更多关于OSGI的进阶话题和技术细节。 总之,掌握OSGI技术对于提升Java开发的灵活性和可维护性具有重要意义。通过深入学习和实践,开发者能够...
资源名称:OSGi实战内容简介:为了弥补OSGi规范在应用指导方面的不足,四位活跃在OSGi开发第一线的技术专家联手打造了《OSGi实战》。《OSGi实战》面向OSGi规范的使用者,系统、全面、深入地阐述OSGi的重要特性及其...
3. **部署与打包**:学习如何将OSGI应用打包成bundle并部署到OSGI运行时环境,如Apache Felix或Karaf。 4. **调试与监控**:了解OSGI环境下如何进行日志跟踪、性能分析和故障排查。 《OSGI入门和整合Spring》则关注...
2. **获取桥接工具**:下载并添加Apache Felix WebConsole或Pax Web到你的项目中。 3. **配置桥接工具**:根据工具的文档配置相应的XML配置文件,如Tomcat的`context.xml`或`server.xml`,以便它们能在Tomcat启动时...
2. **模块化开发**:讲解如何将Java项目划分为多个独立的模块,并使用OSGI的API进行打包和配置。 3. **类加载机制**:解析OSGI的类加载机制,如何处理类的加载、查找和隔离。 4. **服务注册与发现**:探讨OSGI中的...
1. **构建OSGi应用**:使用Maven或Gradle的OSGi插件,可以方便地构建符合OSGi规范的模块化项目。 2. **Spring与OSGi集成**:Spring Dynamic Modules (SDM) 提供了将Spring应用与OSGi环境结合的工具,使Spring应用...
OSGI实战这本书是面向对OSGI技术感兴趣的Java开发者的入门资料,旨在提供全面的OSGI知识体系,帮助读者理解和应用OSGI框架。 在OSGI中,每个bundle都是一个独立的运行单元,有自己的类加载器,可以加载自己的类和...
OSGI的核心概念是服务和模块化,它的出现解决了Java应用程序的复杂性问题,使得组件之间的依赖关系更加清晰,同时也支持动态部署和更新。 在"OSGI实战"中,你将学习到如何使用OSGI来开发模块化的Java应用。实战部分...
**OSGI实战中文版** OSGi(Open Services Gateway Initiative)是一种Java模块化系统,它允许开发者将应用程序分解为独立的、可热插拔的模块,称为服务。这些服务可以互相发现并交互,提供了灵活的组件化开发环境。...
- **5.1 Equinox**:作为Eclipse项目的一部分,Equinox是当前最流行的OSGi实现之一。这部分详细介绍了Equinox的核心功能、特点以及应用场景。 - **5.2 Oscar**:虽然提到Oscar,但未给出更多细节。通常,Oscar指的是...
网上收集的OSGI资料. 包括: OSGi原理与最佳实践(精选版).pdf OSGI实战和源码.rar osgi进阶.pdf Introduce.OSGi.ppt OSGi.in.action.ppt r4.cmpn.pdf r4.core.pdf r4.enterprise.pdf
《OSGi实战》一书由BlueDavy撰写,是一份详尽的OSGi入门与实战指南,适合初学者和有经验的开发者深入了解OSGi框架及其应用。以下是对该书籍核心知识点的总结: ### OSGi简介 OSGi(Open Service Gateway Initiative...
1. Equinox:由Eclipse基金会开发,是OSGI参考实现之一,广泛用于Eclipse IDE和其他企业级项目。 2. Oscar:Apache Felix项目的一部分,也是一个流行的开源OSGI实现。 3. Knopflerfish:轻量级且功能丰富的OSGI框架...
8. **打包和部署**:源代码中可能包含了如何将Java项目打包成OSGi Bundle的步骤,例如使用Maven的BND插件或者Gradle的OSGi插件。 通过分析这些源代码,读者可以学习到如何设计、构建和部署OSGi应用,理解模块间的...