如果我不使用某些模块,是不是必须将所有模块都包含在 wildfly10.1.0 Standalone.xml 中?

Posted

技术标签:

【中文标题】如果我不使用某些模块,是不是必须将所有模块都包含在 wildfly10.1.0 Standalone.xml 中?【英文标题】:If I am not using some modules,Is it mandatory to have all modules in wildfly10.1.0 standalone.xml?如果我不使用某些模块,是否必须将所有模块都包含在 wildfly10.1.0 Standalone.xml 中? 【发布时间】:2017-10-23 09:19:08 【问题描述】:

有人可以帮我吗?如果我不使用某些模块作为我们的应用程序开发的一部分,是否必须在standalone.xml 中包含所有模块扩展?如果没有,如果我们删除一些未使用的模块以及我想删除 module="org.jboss.as.ejb3"module="org.jboss.as.jsf" 等扩展,我们将获得什么好处?如果我清理了我的standalone.xml,我会在应用程序性能和内存方面获得什么好处吗?

【问题讨论】:

让生活简单,不要担心。性能(EJB 无论如何都被证明比 CDI 更快)和最小(如果有的话)内存影响不会有任何差异。如果它真的很烦你考虑WildFly Swarm。 非常感谢史蒂夫,您的评论对我的理解很有帮助。 唯一可能获得的性能是在部署期间。但是我认为它会非常小。内存占用也可能不会有那么大的变化。 谢谢詹姆斯,你是对的,这对进一步进行真的很有帮助.. 【参考方案1】:

Wildfly 使用模块化架构,使用submodulesservices 作为功能块。有些是急切启动的,即即使您的应用不需要它们,有些是惰性的,即除非某些部署请求它们,否则它们不会被初始化(您可以在服务器启动后在服务器日志中观察它)。 启动过程是异步的,因此在任何合理的硬件上都应该相对较快。话虽如此,没有什么能阻止您只使用您需要的子模块创建自己的配置文件或分发(例如,如果这是您需要的唯一 api,您可以删除除 servlet 子系统之外的所有内容,或者删除所有 javaee 子系统并使用 undertow as loadbalancer )。但是,除非您真的在非常受限的环境中工作——磁盘空间或内存非常有限,否则我认为不值得花时间在上面。在任何现实世界的场景中,您的应用程序内存需求将使服务器开销可以忽略不计。 首先专注于您的应用程序,然后(如果您仍然需要它)花时间调整服务器。很有可能,默认的 Wildfly 配置可以正常工作:) 快乐的黑客攻击

【讨论】:

非常感谢 Yntelectual 提供如此简短的解释。 刚刚停下来寻找解决方案以找出未使用的模块。我完全同意你的看法,没有必要花很多时间尝试从默认的 JBoss/Wildfly 瘦身,这很好用。我看到这个练习的一个实际原因是为了安全。通过删除加载到生产系统中的有缺陷的过时模块来缩小攻击面并降低风险。 是的,如果有机会使用较新版本的 Wfly,请查看 Galleon - 它允许您使用功能包作为构建块创建自定义 Wildfly 发行版,因此您可以省略您的模块不需要。

以上是关于如果我不使用某些模块,是不是必须将所有模块都包含在 wildfly10.1.0 Standalone.xml 中?的主要内容,如果未能解决你的问题,请参考以下文章

在表单代码模块中查找函数

内聚类型

Python模块-requests

使用模块和计数时如何在 terraform 中包含标签

提供两个不同战争的多模块项目

如何获取 Webpack 中每个块包含的所有文件(或模块)的列表