使用Thorntail/Kubernetes,是否可以在project_defaults.yml上使用动态值?例如:
thorntail:
ejb3:
thread-pools:
default:
max-threads: ${my.variable}将在特定模块的控制面板上配置my.variable的位置。
其思想是替换standalone.xml值,而不必在每次需要更改值时执行新的部署。
发布于 2020-11-26 17:37:02
这在理论上是可能的,因为Thorntail是基于WildFly的,它允许在不重新启动的情况下更改一些配置值。您的示例引用了WildFly配置值,因此这是可能的。Thorntail中那些不是来自WildFly的配置值根本不允许这样做。
您可以使用management片段让Thorntail公开WildFly管理接口。然后,您可以使用WildFly管理客户端(ModelControllerClient)发出管理操作。然而,我不鼓励你这样做,因为Thorntail并不是真正为它而设计的。
(另外,Thorntail已经到了生命的尽头。查看此处了解更多信息:https://thorntail.io/posts/the-end-of-an-era/)
发布于 2020-12-10 20:44:55
我们可以通过将变量配置为环境变量来做到这一点。使用前面的示例:
thorntail:
ejb3:
thread-pools:
default:
max-threads: ${env.my_variable:default_value}然后,我们在所需模块的仪表板上配置my_variable。
重要是要注意,我们应该定义一个默认值,因为如果thorntail属性是数字,而模块上没有定义环境变量,我们将面临一个解析问题,因为解析器会将变量名称解释为一个数字。这是一个真实的例子:
Kubernet模块:
RCNT_MAX_THREADS is defined with 12project_defaults.yml:
thorntail:
ejb3:
thread-pools:
default:
max-threads: ${env.RCNT_MAX_THREADS:10}这将导致应用程序使用值为12的最大线程数。如果我们没有在模块上定义RCNT_MAX_THREADS,则将使用值10。
还有一个非常有用的选项来跟踪实际使用的值:https://docs.thorntail.io/2.5.0.Final/#the-usage-txt-file_thorntail
https://stackoverflow.com/questions/64975545
复制相似问题