There are so many different Actor model implementations for Java (and the JVM languages).
A lot of Actor libraries and frameworks have been implemented to permit Actor-style programming in Java (which doesn't have Actors built-in). I think the Actor model has big advantages, but the choices for Java are overwhelming!
Can someone post the most popular ones and offer some insight into which to use? Which ones have benchmarks for throughput in terms of messages passed per second?
解决方案
This is a good article series. Also see this presentation. Carl Hewitt explains the essence of the Actor Model of computation here.
Killim and Akka (scala) has the best performance. I would suggest using Akka.
Starting with Scala 2.11.0, the Scala Actors library is deprecated. Already in Scala 2.10.0 the default actor library is Akka. Use akka as an frontend and call your java code if you dont want to do all of the coding in Scala. Scala and Akka has a very nice syntax and API. Akka has a Java API called "Active Objects". Note that there is a lot of things happening in Akka right now so the code base is moving fast. See the Java getting started doc
Killim is java based but does compile time weaving.
Jetlang and FunctionalJava are options that does not do compile time weaving (??unsure), but is not as fast as Akka and Killim (no current data on this, but there are some old numbers in Jonas Boners and Viktor Klangs talk at Scala Days 2010 ).
Other options is using regular JMS (or some other MQ / PubSub). Also you could do your own simple intra JVM publication channels / workers. Or just use java util concurrent ExecutorService or com.google.common.util.concurrent
Other Scala based frameworks/libraries with Actor implementations are Stambecco, Lift and Scalaz.
Other similar models are Hazlecast Distributed Executor Service, Oracle Coherence with the InvocableService, GigaSpaces Executors or IBM eXtreme Scale. But these are missing the "Actors are systems" part to some degree.