小编cod*_*tsu的帖子

如何建立高效的Kafka经纪人健康检查?

在我的应用程序中,我将对我的Kafka群集执行某种健康检查.

目前我做了一个TopicMetadataRequest检测死经纪人:

  Future {
    // this will fail if Kafka is unavailable
    consumer.send(new TopicMetadataRequest(Seq("health-check-topic"), 1))
  }
Run Code Online (Sandbox Code Playgroud)

不幸的是,由于群集拓扑/设置,此调用会产生巨大的网络流量.

有没有更好的方法来检查卡夫卡经纪人?我需要的是像true/false指标一样简单的东西.

java scala apache-kafka

7
推荐指数
2
解决办法
1万
查看次数

PDF格式文本隐藏,除非单击

在我的应用程序中,我必须使用来自DB的数据填充预定义的PDF表单.我们正在使用Java和Pdfbox.填充本身不是问题.

问题是,在生成的PDF文件中,除非单击字段,否则表单中的所有文本都是不可见的(或隐藏的,也是灰色矩形).

我怎么解决这个问题?

java pdf pdf-generation pdf-form pdfbox

3
推荐指数
1
解决办法
1万
查看次数

找出docker容器中的IP地址

我有一个docker-compose包含多个服务容器定义的文件.其中一个服务Apache Kafka在同一个docker-compose运行中进行通信.

所以我有像这样的kafka docker定义:

  kafka:
    image: spotify/kafka
    ports:
      - "2181:2181"
      - "9092:9092"
    environment:
      ADVERTISED_HOST: 127.0.0.1
      ADVERTISED_PORT: 9092
Run Code Online (Sandbox Code Playgroud)

我在同一个docker-compose文件中有我的服务定义.在服务的启动脚本中,我必须弄清楚Kafka实例的IP地址.

我知道,我可以使用类似的东西docker inspect找出容器使用的IP地址.

但是我怎么能在docker-compose环境中动态地做呢?

编辑

所以,正确的配置应该是(谢谢你,@ nwinkler):

kafka:
image: spotify/kafka
ports:
  - "2181:2181"
  - "9092:9092"
environment:
  ADVERTISED_HOST: kafka
  ADVERTISED_PORT: 9092

myservice:
image: foo
links:
  - kafka:kafka
Run Code Online (Sandbox Code Playgroud)

不要忘记设置ADVERTISED_HOSTto kafka(或者你如何命名你的kafka容器docker-compose).

apache-kafka docker docker-compose

3
推荐指数
1
解决办法
603
查看次数

SBT测试中的奇怪异常

我正面临 SBT(版本 0.13.9)的问题。我的 ScalaTest 测试之一失败了不确定性EOFException

堆栈跟踪:

Exception in thread "Thread-155" Exception in thread "Thread-159" java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2601)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at sbt.React.react(ForkTests.scala:114)
at sbt.ForkTests$$anonfun$mainTestTask$1$Acceptor$2$.run(ForkTests.scala:74)
at java.lang.Thread.run(Thread.java:745)

java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2601)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at org.scalatest.tools.Framework$ScalaTestRunner$Skeleton$1$React.react(Framework.scala:953)
at org.scalatest.tools.Framework$ScalaTestRunner$Skeleton$1.run(Framework.scala:942)
at java.lang.Thread.run(Thread.java:745)

sbt.ForkMain 59974 failed with exit code 134
Run Code Online (Sandbox Code Playgroud)

我没有看到任何 JVM 日志或线程转储。

scala sbt scalatest

1
推荐指数
1
解决办法
2218
查看次数

Kafka Connect和Streams

所以我最近开始阅读Kafka,我对Kafka Connect和Kafka Streams之间的区别感到有些困惑.根据定义,Kafka Streams可以从Kafka主题收集数据,处理它并将输出推送到另一个Kafka主题.而Kafka Connect将大型数据集移入和移出Kafka.

我的问题是为什么我们需要Kafka Connect几乎可以读取数据,处理数据并将其推送到主题?为什么要增加一个组件 如果有人可以解释差异,那将是很棒的,在此先感谢:)

apache-kafka apache-kafka-streams apache-kafka-connect

1
推荐指数
1
解决办法
403
查看次数