java – OSGi vs jboss热部署

根据我的理解,在Osgi中,您可以在运行时更新jar,而无需重新启动服务器.但是,jboss还具有热插拔,全耳朵更新并且服务器仍在运行.

那么Osgi在jboss的企业Java项目中会有什么好处呢?

解决方法

我相信答案与每个Osgi用例相同:模块化和更精细的更新粒度.

Osgi远不止在运行时更新jar,而是不重新启动服务器.从您的问题的角度来看,它是在运行时更新jar,而不重新启动应用程序.

我承认我不知道JBoss AS中EAR热部署的具体实现,但无论如何,EAR更新都不可能被设计为保留应用程序的整个状态.服务器仍在运行,但您在更新时基本上重新启动应用程序.这种状态损失的程度真的取决于你如何设计你的应用程序,但事实依然是你在单纯地做事情.

使用Osgi,情况并非如此:应用程序由大量的软件包组成,每个软件包都希望能够处理单独的功能部分.这种方法使得能够进行应用内部的热部署,因为该框架被设计为考虑重新启动任何单个jar对整个应用程序带来的影响,并使其他jar响应适当.这提供了尽可能多地保留应用程序状态的能力.

因此,Osgi设计在企业案例中的好处是应用程序活动.没有必要强调这一点的重要性.真的有一些用例可以安全地重新启动应用程序.但是,在我看来,Osgi是目前Java EE唯一真正可扩展和可维护的选择.事实上,最重要的应用程序服务器已经(或将要去)到Osgi运行时(并因此提供了Osgi应用程序支持),这就证明了这一点.

相关文章

背景 阿里java开发规范是阿里巴巴总结多年来的最佳编程实践,...
# 前言 在面试这一篇我们介绍过[CountDownLatch和CyclicBarr...
多线程编程是每一个开发必知必会的技能,在实际项目中,为了...
背景 在我们系统中有这么一个需求,业务方会通过mq将一些用户...
# 前言 为了更好的进行开发和维护,我们都会对程序进行分层设...
前言 关于动态代理的一些知识,以及cglib与jdk动态代理的区别...