Apache 基金会孵化器近日迎来新成员——Pekko ,但对于部分开发者来说,Pekko 应该不陌生。
事实上,Pekko 是 Akka 项目的一个分支。不久前, Akka 的许可证从 Apache 2 更改为 Business Source License 1.1,Pekko 作为新的分支从中拉出。根据介绍,Pekko 项目提供了一套工具和框架,涵盖了分布式并发系统的复杂问题空间。它旨在支持响应式宣言的设计原则,通过提供组件来有效地在服务器内扩展系统或跨多个服务器横向扩展,是高性能、对故障具有弹性的、没有单点故障的分布式系统。
“如果 Pekko 成为 Apache 的一部分,那么它将让 Pekko 的社区/用户相信这样的事件不会在未来再次发生。目前还有一些现有的 Apache 项目,例如 Flink,它们在不同程度上使用了 Akka,因此让 Pekko 成为 Apache 的一部分给了这些其他 Apache 项目的信心。我们认为这个分叉是对预先存在的 Apache 2 许可证的维护,并要求 Apache 社区这样看待它。”Pekko 项目提案中如此写道。
Pekko 将参与者模型(由 Erlang 推广)引入 JVM,为构建本地和分布式并发提供了基础。在此之上,Pekko 提供了一套丰富的构建在 Actors 之上的库来解决现代问题,包括:
流:遵循响应式标准的完全双向背压流
HTTP:建立在流之上的全流式 HTTP 客户端/服务器,还提供高可用性 Web 服务所需的预期工具(例如连接池)
连接器:一组丰富的连接器集,用于构建在流之上的各种数据库、消息传递、持久性服务
grpc:一个 gRPC 服务器/客户端
投影(projection):提供 CQRS 模式所需的抽象,所需的系统(比如 Kafka)。
官方预计孵化过程会很长,“因为我们需要完成大量的代码清理和文档清理。此外,我们需要配置 Apache 构建系统以正确构建一个相当复杂的项目(即 akka 核心有需要多节点机器的测试)。”
评论