• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 记一次kafka producer连接缓慢的排查

记一次kafka producer连接缓慢的排查

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了kafka producer,kafka producer配置,kafka producer sync,kafka producer api,kafka producerdata等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

记一次kafka producer连接缓慢的排查


现象:
kafka producer通过SSL连接kafka broker,发送消息。
能够发送成功,但连接非常缓慢,发送一条消息接近50秒。

环境:
kafka broker位于数据中心,通过端口映射暴露到公网。
内网IP:10.1.1.1
公网IP:x.x.x.x (映射 9093 端口到内网的10.1.1.1:9093)

内网访问broker使用PLAINTEXT,外网访问broker使用SSL。

broker配置(只网络相关配置)
  1. ssl.keystore.location=server.keystore.jks
  2. ssl.keystore.password=xxx
  3. ssl.key.password=xxx
  4. ssl.truststore.location=server.truststore.jks
  5. ssl.truststore.password=xxx
  6. ssl.client.auth=required
  7. listeners=PLAINTEXT://0.0.0.0:9092,SSL://:9093
  8. advertised.listeners=PLAINTEXT://10.1.1.1:9092,SSL://x.x.x.x:9093

producer在外网,通过SSL访问。配置:
  1. bootstrap.servers=x.x.x.x:9093
  2. ssl.protocol=SSL
  3. security.protocol=SSL
  4. ssl.keystore.location=client.keystore.jks
  5. ssl.keystore.password=xxx
  6. ssl.key.password=xxx
  7. ssl.truststore.location=client.truststore.jks
  8. ssl.truststore.password=xxx

producer日志:
  1. 14:01:23.367 [main] INFO org.apache.kafka.common.utils.AppInfoParser - Kafka version : 0.9.0.1
  2. 14:01:23.367 [main] INFO org.apache.kafka.common.utils.AppInfoParser - Kafka commitId : 23c69d62a0cabf06
  3. 14:01:44.856 [main] INFO org.apache.kafka.clients.producer.KafkaProducer - Closing the Kafka producer with timeoutMillis = 9223372036854775807 ms.

排查:
在producer一侧,使用tcpdump观察9093端口,发现SSL握手成功,也有数据传输,
但是从producer启动到发送出syn,间隔10多秒。

后来去掉对9093端口的过滤,观察所有端口,发现在137端口有name query,
发送了3次,花费了10多秒。
137端口是windows的NETBIOS协议,看来producer是在向broker查询主机信息。

然后,通过jstack查看producer的线程堆栈,发现在getHostByAddr处等待。
到这时,才怀疑是不是因为取不到broker的主机名。

在producer一侧的hosts文件里配置主机名 "x.x.x.x serverx" 之后,故障解决,
producer非常快就结束了消息发送。


总结:
这次故障,是因为客户端无法根据服务器的IP获取主机名,一直等待到超时,所以造成处理缓慢。

最终通过配置hosts解决。
(如果使用DNS的话,看来需要配置反向解析。)


producer的配置里直接设置的是broker的ip,为什么客户端还要调用getHostByAddr呢?
这个问题还没有弄明白,猜测是因为SSL协议需要校验服务器证书,会用服务器的域名和
证书的cn比对吧?

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 记一次kafka producer连接缓慢的排查

相关文章

  • 2017-05-26总结一下Android中主题(Theme)的正确玩法,androidtheme
  • 2017-05-26android手机登录时遇到“QQ安全登录发现病毒”解决,android手机
  • 2017-05-26Android安全攻防战,反编译与混淆技术完全解析(下)
  • 2017-05-26Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能
  • 2017-05-26Mac搭建Android开发环境,mac搭建android
  • 2017-05-26android 自定义title,androidtitle
  • 2017-07-23android应用开发-从设计到实现3-8静态原型的Appbar折叠
  • 2017-05-26android 动画效果,android动画
  • 2017-05-222.4.4 Adapter基础讲解
  • 2017-05-26学习笔记:下拉刷新的视图和图标的旋转,学习笔记视图

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android pendingInten 用法详解
    • 硅谷新闻7--顶部轮播图循环播放,7--循环播放
    • 深入理解RCU实现
    • android 编程小技巧(持续中)
    • StringBuffer工具类整理(一),stringbuffer工具类
    • Android实现支付宝支付
    • android6.0的坑,android6.0
    • Android源码基础解析之Activity布局绘制流程
    • go 常用命令扼要说明
    • Android之SAX解析XML文件,androidsaxxml

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有