Akka 卡夫卡与阿克卡集群
下面是我的用例Akka 卡夫卡与阿克卡集群,akka,apache-kafka,akka-cluster,Akka,Apache Kafka,Akka Cluster,下面是我的用例 许多应用程序将卡夫卡中的消息排在不同主题下 让每个主题的使用者将工作分发给集群中的工作人员。工作可分为长时间运行、内存密集型、简单型等,并相应地选择工作人员 这让我探索Akka集群的工作分配、路由和扩展。我可以使用Akka“主管”作为卡夫卡消费者,并根据其分类将传入的工作分配给相应的工人 但我仍在努力理解的是,在Akka集群的主管和员工之间实施弹性沟通的正确方式。因为一旦主管使用了来自卡夫卡的消息,卡夫卡偏移量就会提交。如果在偏移量提交后处理过程中发生错误,以下方法是否可以接受,
通过使用卡夫卡支持的持久邮箱,使主管成为持久参与者。主管在卡夫卡排队工作,工人从卡夫卡获得工作,并在完成工作后提交其补偿。正如Jaakko所说,这实际上取决于您使用的第三方库 就我而言,我已经成功地使用了,尽管我启用了偏移自动提交 但是,此库可以满足您的需要,因为它允许您自定义偏移提交(请参阅第节和第节) 文件说: Consumer.committeablesource使向Kafka提交偏移位置成为可能。与自动提交相比,它可以精确地控制消息何时被认为已使用 为了禁用自动提交,您必须通过添加
Akka.kafka.consumer
部分来完成Akkaapplication.conf
文件:
akka.kafka.consumer {
# Properties defined by org.apache.kafka.clients.consumer.ConsumerConfig
# can be defined in this configuration section.
kafka-clients {
# Disable auto-commit by default
enable.auto.commit = false
}
}
最新版本的akka-stream-kafka_2.11(版本0.16
)与akka2.5.x
兼容,但您必须使用akka工具包中的一个覆盖akka-stream_2.11的依赖关系。目前,我在Akka2.5.3
中使用这个库,它运行得非常好
希望你能找到你想要的:)嗨,你用什么图书馆来消费卡夫卡?您使用的库可能具有在使用后不自动提交消息的功能。