Apache Flink回应Akka许可证收费事件


Akka的新许可证给Apache Flink带来了许多问题,因为它在内部使用Akka 进行集群协调。
但是,Apache Flink的许可证不会改变。将不会再使用 Akka 2.7+,这将确保用户不受影响。

Flink 没有任何直接的危险,我们将确保用户不受此更改的影响。
Flink 的许可不会改变;它将保持 Apache 许可,并且仅包含与其兼容的依赖项。
我们不会使用带有新许可证的 Akka 版本。

现在,我们将继续使用 Akka 2.6,这是当前最新版本,仍可在原始许可下使用。从历史上看,Akka 一直非常稳定,再加上我们对功能的有限使用,我们预计这不会成为问题。
同时,我们将

  • 观察情况如何发展(特别是 wrt 社区分叉)
  • 寻找 Akka 的替代品。

如果创建社区分叉(目前看来可能),我们将在 1.15+ 的所有可能范围内切换到该分叉。

Flink 如何使用 Akka?
用于 Flink 的协调层

  • 在进程/组件(例如,JobManager 和 TaskManager)之间交换状态消息,
  • 对多线程强制执行某些保证(即,只有一个线程可以更改组件的内部状态)
  • 观察组件是否出现意外崩溃(即,注意并处理 TaskManager 线程崩溃)。

这意味着我们使用的 Akka 功能非常少。此外,我们使用 Akka 是绝大多数 Flink 代码不知道的实现细节,这意味着我们可以用其他东西替换它,而无需显着更改 Flink。