【发布时间】:2022-01-17 15:59:29
【问题描述】:
我对在有状态的水平缩放节点上安装插件的效果很感兴趣。当一个节点被扩展并有 3 个节点(1 个主节点和 2 个常规节点)时,安装的插件是只对主节点有影响,还是也安装在常规节点上?如果没有,我们可以在常规节点上显式安装附加组件吗? 在文档中找不到有关这种情况的信息。
【问题讨论】:
我对在有状态的水平缩放节点上安装插件的效果很感兴趣。当一个节点被扩展并有 3 个节点(1 个主节点和 2 个常规节点)时,安装的插件是只对主节点有影响,还是也安装在常规节点上?如果没有,我们可以在常规节点上显式安装附加组件吗? 在文档中找不到有关这种情况的信息。
【问题讨论】:
这在某种程度上由插件本身定义,具体取决于它在其 onBeforeScaleOut 和 onAfterScaleOut 事件处理程序中定义的内容。
理想情况下,每个附加组件都应该使用适当的处理程序(或不需要这些处理程序的适当行为)编写,但实际上这并不能保证......完全取决于作者。
如果我们假设有问题的插件没有定义应该发生的事情,有状态扩展意味着主节点的整个文件系统将被复制 - 因此部署在主节点上的任何配置文件或系统包插件也会出现在新水平缩放的节点上。
documentation 提到了反向场景的警告(适用于 无状态 缩放):
- 插件 - 图层上安装的任何插件都将不可用
编辑以解决评论中的问题说明:
我对向上或向下缩放不感兴趣。我对在有状态的水平缩放节点上安装附加组件(带有清单)的效果感兴趣。
有状态与无状态仅在在缩放期间很重要 - 它描述了它们是如何创建的(对于现有节点,它们的创建方式并不重要;它们的处理方式相同)。
据我所知,它仅安装在主节点上,但我想确定是否可以强制它安装在常规节点上。
这完全取决于附加组件及其targets 的操作方式。它可以设计为仅在给定层的主节点上执行命令/安装东西,也可以设计为在层(或环境)内的所有节点上工作。
每个插件背后的 JPS 脚本通常是开源的。您可以在 https://github.com/jelastic-jps 找到一些示例,但我建议您向插件作者(或您的 Jelastic 提供商,如果他们默认为您提供的话)提出您的问题。
【讨论】: