异步并发分布式编程框架 Akka
1、Akka
Akka 是基于 actor 模型的实现,actor 模型也就是响应式模型,它和我们常用的基于方法堵塞式的调用不同,而是基于消息的异步调用。
Akka 是一个开发库和运行环境,可以用于构建高并发、分布式、可容错、事件驱动的基于 JVM 的应用,使构建高并发的分布式应用更加容易。
2、特性
事件驱动
Actor 通过响应消息来执行工作。Actor 之间的通信是异步的,允许 Actor 发送消息并继续自己的工作,而不是阻塞等待响应。
强隔离
与 Java 中的常规对象不同,Actor 在调用的方法方面,没有一个公共 API。相反,它的公共 API 是通过 Actor 处理的消息来定义的。这可以防止 Actor 之间共享状态;观察另一个 Actor 状态的唯一方法是向其发送请求状态的消息。
位置透明
通过工厂方法构造 Actor 并返回对实例的引用。因为位置无关紧要,所以 Actor 实例可以启动、停止、移动和重新启动,以向上和向下扩展以及从意外故障中恢复。
轻量级
每个实例只消耗几百个字节,这允许一个应用程序中有数百万并发 Actor 。
3、Akka 模块
Akka Actors
Akka 的核心,一个用于并发和分发的模型,没有线程原语的所有缺点。
Akka Streams
一种直观而安全的方式来实现异步、非阻塞的回压流处理。
Akka HTTP
新型的、快速的、异步的、流的 HTTP 服务器和客户端。
Akka Cluster
通过在多个节点上分布您的系统来获得弹性和弹性。
Akka Sharding
根据用户的身份,在集群中分配您的参与者。
Distributed Data
最终一致,高度读取和写入可用,低延迟数据。
Akka Persistence
为参与者的事件包允许他们在重新启动后到达相同的状态。
Alpakka
Akka 流连接器用于集成其他技术。
Akka Management
在云系统上运行 Akka 系统的扩展(k8s,aws,…)
评论