什么是akka,它的用途是什么?

swa*_*eed 9 akka

我想知道它的用途是什么Akka.

我从互联网上读到它,并知道它是一个工具包并使用了Actor模型系统.在此之后,我研究了演员模型系统,其中有不同的演员可以互相发信息并发起行动.

我也知道Akka有助于提供并发性并避免锁定机制.但即使在阅读了所有这些之后,我也无法总结Akka究竟是什么以及我们为何使用它?另外,它是如何使用的?

任何人都可以用简单的语言向我详细说明吗?谢谢.

LMe*_*yer 8

简而言之,Akka是一个方便的框架,用于在JVM上执行响应和分布式应用程序.它基于反应性宣言,因此它是:

事件驱动的消息传递(即松散耦合)

通过使用监督策略,死亡观察和等级制度来恢复弹性.

可扩展性响应感谢节约资源与演员在一个非阻塞的方式共享线程.以前,当您遇到并发问题时,您曾经有过阻止当前线程和上下文切换的锁定机制.

无论性能本身如何,演员模型也更容易推理.考虑人与人(即演员)之间的互动比考虑避免死锁和饥饿更容易.那么我们应该总是使用Akka吗?好吧,如果你是一个真正的共享状态并发大师,你想要特定的东西的最佳性能,那么没有.如果你像我们大多数人一样,那么你可以.


Kon*_*ski 6

简单地说,Akka 可以让您免于在编写多线程高性能应用程序时自己处理低级并发原语的麻烦。相反,您可以使用 Actors(一种更高级别的构造)来编写并发代码。然后,相同的模型可以透明地(并且更“感觉正确”)扩展到分布式系统,因为 Actor 始终通过消息进行通信,而不管 Actor 是本地还是在不同的节点上。

有不同的模块,如 HTTP、流或持久性——针对不同的具体问题,但 Akka 的 Actors 将是该项目的核心。

您可以查看不同的激活器模板以查看一些示例应用程序和说明:https : //typesafe.com/activator/templates#filter : akka