【问题标题】:Axon Server auto-scaling split/merge delayAxon Server 自动缩放拆分/合并延迟
【发布时间】:2020-06-10 09:58:55
【问题描述】:

我正在使用 Axon Server 在应用程序中实现自动缩放,并在 k8s 中运行。

我在应用程序本身中创建了 ReST 端点,它查看本地配置(用于处理器和线程数),然后与 Axon Server ReST API 对话,以便适当地拆分/合并处理器。意图是使用容器生命周期钩子来触发它们。

因此,如果启动了一个应用程序的新实例(pod),并在处理器 A 上配置了 2 个线程,那么我的代码将向服务器上的 /v1/components/blah/processors/ProcessorA/segments/split?context=default 端点发出 2 个请求。这是为了充分利用这两个新线程。

同样,当 pod 关闭时,它会向服务器上的合并端点发出 2 个类似的请求。

按比例放大时,我看到处理器分裂了两次,正如预期的那样。但是,在关闭时,除非我在请求之间等待很长时间(5 秒),否则我不会看到两次合并。这不太可能特别稳定,所以我想知道是否还有其他需要做的事情。

也许我应该请求合并,然后循环等待它发生,然后再请求另一个。这似乎会非常缓慢。

还有一个关于 SO 的问题,Automatically scale Axon's tracking event processors,其中 Steven 评论说当时 Axon Server 中没有内置的自动缩放功能。我最近也没有看到任何东西。

【问题讨论】:

    标签: kubernetes axon


    【解决方案1】:

    目前正在改进拆分/合并功能。一方面,将返回拆分/合并的结果,已在问题#1001 下解决。

    这应该可以让您不必等待状态更新,这可能是它(似乎)需要很长时间的原因。顺便说一下,这个功能将成为 Axon Framework / Server 4.4 的一部分,应该会很快发布。

    随后,有关自动缩放的讨论仍在进行中。一个被认为很重要的要求是TrackingEventProcessor 能够为每个线程处理多个段(问题#1434)。例如,这将确保 TEP 在缩放时可以接管多个段以过渡边界。

    但最终,Axon Server 应该能够为您执行此操作。只是还没有。

    所以目前我认为最务实的解决方案确实是等待结果显示在状态上'。如前所述,我相信 4.4 将通过在调用后返回拆分/合并操作的结果来改进这一点。最后,Axon 团队意识到这可以进一步改进,因此正在讨论这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-05
      相关资源
      最近更新 更多