我想知道Akka
的用途是什么。
我从互联网上读到它,并知道它是一个工具包并使用了Actor模型系统。在此之后,我研究了演员模型系统,其中有不同的演员可以互相发信息并发起行动。
我也知道Akka有助于提供并发性并避免锁定机制。但即使在阅读完所有内容后,我也无法总结Akka究竟是什么以及我们为何使用它?另外,它是如何使用的?
任何人都可以用简单的语言向我详细说明吗? 谢谢。
答案 0 :(得分:7)
简而言之,Akka是一个方便的框架,用于在JVM上执行响应和分布式应用程序。它基于reactive manifesto,因此它是:
带有消息传递的事件驱动(即松散耦合)
通过使用监督策略,死亡观察和等级制度,有弹性。
可扩展和响应,这要归功于您的角色以非阻塞方式共享线程,从而节省资源。以前,当您遇到并发问题时,您曾经有过阻止当前线程和上下文切换的锁定机制。
无论性能本身如何,演员模型也更容易理解。考虑人与人(即演员)之间的互动比考虑避免僵局和饥饿更容易。那么我们应该总是使用Akka吗?好吧,如果你是一个真正的共享状态并发大师,你想要特定的东西的最佳性能,那么没有。如果您和我们大多数人一样,那么您可以。
答案 1 :(得分:3)
简单地说,在编写多线程高性能应用程序时,Akka可以避免自己处理低级并发原语的麻烦。相反,您可以使用Actors(一种更高级别的构造)来编写并发代码。然后,相同的模型透明地扩展(并且更多地感觉正确")到分布式系统,因为Actors总是通过消息进行通信,无论Actor是本地的还是在不同的节点上。
有不同的模块,如HTTP,流或持久性 - 针对不同的具体问题,但Akka的Actors将是项目的核心。
您可以查看不同的激活器模板,查看一些示例应用和说明:https://typesafe.com/activator/templates#filter:akka
答案 2 :(得分:1)
Akka对于编写服务器端可伸缩应用程序非常有用。使用Akka,可以非常轻松地将消息发送到应用程序的各个节点。用简单的语言,你可以运行你的应用程序几个号码。根据负载和akka的机器将处理其流量。
答案 3 :(得分:0)
许多人认为Akka是解决并发问题的简单方法。我想补充一点,使用Actor模型(Akka)设计系统可以更容易地推理系统的各个方面,尤其是当无处不在的语言用于Actors和消息时。每个演员都是自己的隔间,演员通过传递消息而不是直接动作调用与其他演员交谈。这种对消息的控制和灵活性使我们能够控制它们的执行方式和位置