Akka 是一个能够简化 JVM 上并发和分布式应用的构建的工具包和运行时。该项目宣布了许可证的变更,由 Apache 2.0 更换为 BSL v1.1(Business Source License)。BSL 是一个 "源代码可用" 的许可证,未来开发者如需在生产中使用 Akka(2.7+ 版本)都需要获得 Lightbend 公司的商业许可。但 Akka 的商业许可将免费提供给年收入低于 2500 万美元的公司,而且 BSL 许可下的任何新代码都将在三年后恢复到 Apache 2.0 许可。
Apache Flink 是一个开源的流处理框架,适用于分布式、高性能的数据流应用;其内部使用了 Akka。Akka 在 Flink 的协调层中用于
- 在进程/组件(例如,JobManager 和 TaskManager)之间交换状态消息
- 对多线程强制执行某些保证(即,只有一个线程可以更改组件的内部状态)
- 观察组件是否出现意外崩溃(即,注意并处理 TaskManager 线程崩溃)
因此,在 Akka 宣布许可证变更后,一些 Flink 用户表达了自己的担忧。对此,Flink 官方发布了一篇博客阐明了对此事的立场,称:
Flink 没有任何直接的危险,我们将确保用户不受此更改的影响。
Flink 的许可不会改变;它将保持 Apache 许可,并且仅包含与其兼容的依赖项。
我们不会使用带有新许可证的 Akka 版本。
接下来,Flink 也将继续使用 Akka 2.6,这是仍可在原 Apache 2.0 许可下的当前最新版本。Akka 2.6 将在 2023 年 9 月之前根据当前 Apache 2 许可证继续接收关键安全更新和关键错误修复。
Flink 方面认为,“从历史上看,Akka 一直非常稳定,再加上我们对功能的有限使用,我们预计这不会成为问题”。同时,他们将:
- 观察情况如何发展(特别是在社区分支方面)
- 寻找 Akka 的替代品
如果创建社区分支(目前看来可能),Flink 则计划将在 1.15+ 的所有可能范围内切换到该分支。且公告指出,Flink 可以用其他东西来代替 Akka,而不需要对 Flink 进行重大改变。