Каковы различия между Akka и Netty, помимо их выбора языка (Scala vs Java)?

Я хотел бы понять различия между Akka и Netty. Я понимаю, что вы можете использовать оба из Scala и Java. Мне больше интересно узнать, где Netty лучше (если где угодно) и где Акка лучше (если где угодно). Другими словами, где они перекрываются, в каких областях я могу использовать Akka, а не Netty и наоборот.

Ответ 1

Akka - это структура concurrency, построенная вокруг понятия актеров и композиционных фьючерсов, Akka была вдохновлена ​​Erlang, которая была построена с нуля вокруг парадигмы актера, Обычно он используется для замены блокирующих блокировок, таких как синхронизация, чтение блокировок записи и т.п. С асинхронными абстракциями более высокого уровня.

Netty - это асинхронная сетевая библиотека, используемая для упрощения использования Java NIO.

Обратите внимание, что они оба охватывают асинхронные подходы, и что можно использовать их вместе или полностью отдельно.

Там, где есть перекрытие, Akka также имеет абстракцию ввода-вывода, и Akka может использоваться для создания вычислительных кластеров, которые передают сообщения между участниками на разных машинах. С этой точки зрения, Akka - это абстракция более высокого уровня, которая может (и делает) использовать Netty под капотом.