Spray,Akka和Apache Kafka Producer

时间:2015-05-22 19:05:14

标签: akka apache-kafka spray

我正在使用Spray / Akka创建一个简单的REST-Api来接收json消息并将其传递给Apache Kafka生产者。 Apache Kafka生成器是一个非阻塞API,用于向Kafka消息代理发送消息,并且是线程安全的(应由所有线程共享)。

我的基本架构是路由特征中的以下(伪代码)

 val myKafkaProducerActor = system.actorOf(Props[KafkaProducerActor])

 val route = {
  path("message") {
  get {
    entity(as[String]) { message =>
        myKafkaProducerActor ! message
  }
  }
  }

也就是说,我总是使用一个单独的actor(myKafkaProducerActor)转发消息,因为该actor只包含非常小的检查(检查是否是一个json文档)并立即将其交给非阻塞消息生成器API。

我现在关注的是:

  • 将消息转发给一个单独的演员是否有意义(kafka制作人是非封锁的,我只是因为有效性检查而将其分开,但目前很便宜)。
  • 默认akka消息可靠性如何影响喷雾(最多一次交付)。它只是理论上的,因为消息是在同一个jvm上转发的吗?是不是更好地不使用任何后续演员并接受小的性能损失但具有更高的可靠性?

感谢。

0 个答案:

没有答案