为什么使用akka
akka是Actor模型的实现。Actors为我们提供了以下优点:
1)对并发/并行程序的简单的、高级别的抽象。
2)异步、非阻塞、高性能的事件驱动编程模型。
3)非常轻量的事件驱动处理。
akka提供了容错性
使用“let-it-crash”语义和监管者树形结构来实现容错。非常适合编写永不停机、自愈合的高容错系统。监管者树形结构可以跨多个JVM来提供真正的高容错系统。
位置透明性
Akka的所有元素都为分布式环境而设计:所有actor都仅通过发送消息进行互操作,所有操作都是异步的。
具有事务性
事务性Actor是actor与STM(Software Transactional Memory)的组合。它使你能够使用自动重试和回滚来组合出原子消息流。
简短地说,在actor模型中,你把一切都看做是一个actor。一个actor是一个计算实体,就像上面第一个例子中的线程,它可以从其他actor那里接收消息,因为一切都是actor。在应答消息时,它可以给其他actor发送消息,或者创建新的actor并与之交互,或者只改变自己的内部状态。生命周期和消息传递都是由框架来管理,所以十分方便。
java中实现并发的方式有4种(Thread、Executor、ForkJoin和Actor),这里也有介绍和比较:
时间: 2024-10-16 06:40:07