Ответ 1
Акка и верблюд - это два разных зверя (кроме того, один - гора, а один - животное).
Вы упомянули сами: Akka - это инструмент для реализации шаблона реактора, то есть основанный на сообщения механизм concurrency для потенциально распределенных систем.
Camel - это DSL/фреймворк для реализации корпоративных интеграционных шаблонов.
Есть много вещей, которые были бы хороши, хотя в Акке, что легко в Camel. Сделки наверняка. Тогда вся логика различной транспортной логики и опций, так как Akka не имеет абстракции для сообщения интеграции. Тогда есть хорошо разработанные EIP, которые великолепны в Camel, многоадресной рассылке, разбиении, агрегации, обработке XML/JSON, разборе текстовых файлов, HL7, чтобы упомянуть лишь некоторые из них. Конечно, вы можете сделать все это в чистом java/ scala, но это не так. Суть заключается в том, чтобы описать интеграцию с использованием DSL, а не для реализации базовой логики еще раз.
Тем не менее, Akka TOGETHER с Camel довольно интересен. Особенно рекомендуется использовать Scala. Затем у вас есть EIP поверх семантики актера, которая довольно эффективна на правой арене.
Пример из akka.io
import akka.actor.Actor
import akka.camel.{ Producer, Oneway }
import akka.actor.{ ActorSystem, Props }
class Orders extends Actor with Producer with Oneway {
def endpointUri = "jms:queue:Orders"
}
val sys = ActorSystem("some-system")
val orders = sys.actorOf(Props[Orders])
orders ! <order amount="100" currency="PLN" itemId="12345"/>
Полный образец/учебник можно найти в typesafe.