Tag: 阿帕奇卡夫

诊断Kafka连接问题

我试图尽可能在我的卡夫卡连接设置尽可能多的诊断,但它仍然导致神秘的问题。 特别是,我所做的第一件事是使用Kafka Admin Client来获取clusterId,因为如果这个操作失败了,没有别的可能会成功。 def getKafkaClusterId(describeClusterResult: DescribeClusterResult): Try[String] = { try { val clusterId = describeClusterResult.clusterId().get(futureTimeout.length / 2, futureTimeout.unit) Success(clusterId) } catch { case cause: Exception => Failure(cause) } } 在testing这通常工作,一切都很好。 一般情况下,只有当端点不可达时才会失败。 它失败了,因为未来超时,所以我没有其他的诊断过去了。 为了testing这些问题,我通常telnet到terminal,例如 $ telnet blah 9094 Trying blah… Connected to blah. Escape character is '^]'. Connection closed by foreign host. 通常,如果我可以telnet到一个Kafka经纪人,我可以从我的服务器连接到Kafka。 所以我的问题是: 如果我可以通过telnet访问Kafka经纪人,这意味着什么,但是我无法通过Kafka […]

在Docker群上构build一个多节点的Kafka集群

我find了这个卡夫卡的docker形象 https://hub.docker.com/r/spotify/kafka/ 我可以使用链接中logging的命令轻松创build一个docker容器 docker run -p 2181:2181 -p 9092:9092 –env ADVERTISED_HOST=`boot2docker ip` –env ADVERTISED_PORT=9092 spotify/kafka 这很好。 但是我想configuration一个运行在docker swarm上的“多个”节点的Kafka集群。 我怎样才能做到这一点?

AWS ECS上的Kafka,如何在不知道实例的情况下处理advertised.host?

我试图让Kafka在AWS ECS容器上运行。 我已经使用spotify/kafka 图像在本地docker环境中正常工作 为了在本地工作,我需要确保设置了ADVERTISED_HOST环境variables 。 ADVERTISED_HOST需要被设置为容器的外部IP,否则当我尝试连接时只是给我connection refused 。 我的本地docker-compose.yaml对于kafka容器有这个: kafka: image: spotify/kafka hostname: kafka environment: – ADVERTISED_HOST=192.168.0.70 – ADVERTISED_PORT=9092 ports: – "9092:9092" – "2181:2181" restart: always 现在的问题是,我不知道IP将会是什么,因为我不知道这将运行在哪个实例。 那么如何设置这个环境variables呢?