除了语言选择(Scala vs Java)之外,Akka和Netty之间有什么区别?

时间:2014-08-18 14:18:41

标签: java scala akka netty

我想了解Akka和Netty之间的区别。我知道你可以使用Scala和Java。我更感兴趣的是知道Netty哪里更好(如果有的话)和Akka更好(如果有的话)。它们在哪里重叠,换句话说,在哪些方面我可以使用Akka而不是Netty,反之亦然。

1 个答案:

答案 0 :(得分:37)

Akka是一个围绕演员和可组合未来概念构建的并发框架,Akka的灵感来自Erlang,它是在Actor paradigm周围构建的。它通常用于替换阻塞锁,例如同步,读写锁等,具有更高级别的异步抽象。

Netty是一个异步网络库,用于使Java NIO更易于使用。

请注意,它们都采用异步方法,并且可以将两者结合使用,或者完全分开使用。

有重叠的地方是Akka也有IO抽象,Akka可用于创建在不同机器上的actor之间传递消息的计算集群。从这个角度来看,Akka是一个更高级别的抽象,它可以(并且确实)在底层使用Netty。