Akka的语言和产品替代方案是什么?

Mik*_*e Z 21 rabbitmq actor akka playframework

现在我正在看Play Framework并且喜欢它.在Play中提供的功能广告之一是Akka.

为了更好地了解Akka以及如何正确使用它,您能告诉我其他语言或产品有哪些替代品?

RabbitMQ与它相比如何?有很多重叠吗?将它们一起使用是否实用?在什么用例?

Ada*_*ent 19

我使用RabbitMQ + Spring AMQP + Guava的EventBus来自动注册使用Guava的EventBus的类似Actor的信使,以便对收到的消息进行模式匹配.

与Spring AMQP和Akka的相似之处是不可思议的.Spring AMQP的SimpleMessageListenerContainer + MessageListener几乎等同于Actor.

然而,出于所有意图和目的,RabbitMQ 比Akka 更强大,因为它有许多不同语言的客户端实现,提供持久性(持久队列),拓扑路由可插拔QoS算法.

这就是说Akka更方便,理论上Akka可以做到以上所有,有些人有书面扩展,但大多数只是使用Akka,然后让Akka通过RabbitMQ传递消息.另外,Spring AMQP SimpleMessageListener容器有点沉重,而且不清楚如果你创建了几百万个容器会发生什么.

事后我会考虑将Akka用于RabbbitMQ而不是Spring AMQP用于未来的项目.


Tom*_*icz 14

最好的起点是一个伟大的Akka官方文档.我认为最接近Akka的产品/框架是语言.我(我没有使用Play框架)Akka用于实现Comet和其他异步处理.

在想法(发送消息的基础)方面有些相似,请注意RabbitMQ甚至用编写,但它们的用例略有不同.我会说,虽然RabbitMQ专注于消息传递,但Akka更多的是关于actor(消息接收者和发送者).

  • RabbitMQ是AMQP经纪人,即运输.Akka是一个并发/可伸缩性/容错工具包.您可以将AMQP用作Akka Actor邮箱或Akka远程传输. (18认同)
  • 您可以使用远程actor"加入"JVM,它们带有基于Netty的默认传输. (6认同)

Cod*_*nci 8

我可以提供最好的建议,因为当Play 2.0加入Typesafe并开始使用Akka时,我也经历了相同的思考过程,就是搜索"Actor模型".

维基百科是一个很好的资源 - http://en.wikipedia.org/wiki/Actor_model.它有一个可以支持actor模型的编程语言列表,还有一个基于Actor模型的框架列表(包括Akka).

简而言之,Actor模型基于并发计算模型中actor的概念.Actors并不一定意味着传递消息,但是大多数常见的用例都会让actor传递消息(这与RabbitMQ的相似之处就在于此).

  • 具有大影响的小修正:演员只能传递消息,这是概念的本质.Actor是计算模型,而rabbitMQ是传递消息的手段,因此它们生活在不同的抽象层次上. (10认同)