kkman007 2019-11-18 22:10 采纳率: 0%
浏览 512

在docker容器里kafka生产者(java客户端)消息发送不出去!!

在我们项目实施过程,部署在docker容器里应用需要用kafka客户端发送不出消息,但是同样应用部署在物理机(该容器所在物理机)上,kafka客户端可以发送消息;然后我们在docker容器里的kafka客户端生产者增加调整两个参数linger.ms、batch.size,这样在容器里kafa客户端就可以发送。现在不知道在容器里和在物理机上对于linger.ms、batch.size这两个默认参数有什么区别?

  • 写回答

1条回答

  • yychen_java 2024-02-27 16:29
    关注

    在 Docker 容器和物理机上运行 Kafka 客户端时,对于 linger.ms 和 batch.size 这两个参数的默认设置有所不同。主要用于调整 Kafka 生产者的性能和批量发送消息的方式。

    linger.ms(发送延迟):

    linger.ms 参数表示生产者在发送消息之前等待的时间,以便允许更多的消息进行批处理。较长的 linger.ms 可能会导致消息在缓冲区中等待更长时间,以便打包在一起发送,从而减少网络开销。
    在 Docker 容器中和物理机上,默认的 linger.ms 设置可能会受到不同的环境因素影响,比如网络延迟、资源限制等。因此,在不同环境下可能需要调整这个参数以获得最佳性能。
    batch.size(批量大小):

    batch.size 参数表示一次批量发送消息的大小。较大的 batch.size 可能会导致生产者在达到一定大小或超时前等待更多消息,然后一起发送,以减少每个消息的网络开销。
    在 Docker 容器和物理机上,默认的 batch.size 设置可能会有所不同,取决于环境的网络性能和资源配置。
    要了解在您的环境中这两个参数的具体默认设置和影响,您可以查看 Kafka 生产者的配置文件或代码中的默认值,并根据实际情况进行调整以获得最佳性能。通过调整这些参数,您可以优化 Kafka 生产者在 Docker 容器和物理机上的消息发送行为。

    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决