问题反馈: xx现场测试环境下,整个平台的数据,除了原始数据模块,其他模块正常运行。相同版本的包,在线上环境上原始数据的订阅是正常的,但是测试环境没有,查看所有相关的日志,均没有报异常,且日志中有正常显示已经把数据发送到kafka。但是从kafka的日志里查,没有收到转发过来的数据。
 
这里梳理一下这个 原始数据 的整个流程:
upload 转发 原始数据到 kafka,用的topic为 OREGINAL_DATA ,   storm计算启动一个叫realtime的拓扑,消费 OREGINAL_DATA 上的数据,再把处理后的数据转发到 kafka, 用的topic为  OREGINAL_DATA_FORWARD。
 
排查过程:
1. 查看 upload日志,确定日志中有正常发数据到kafka ,且显示成功了   -- 这个日志有一个很大的误导作用
2. 通过 kafka 的消息积压命令查看(如下),确定是没有新的信息生产(logSize没有变化,通过kafka的 log.dirs 也确定该topic没有 生产到数据)
        kafka-consumer-offset-checker.sh   --topic OREGINAL_DATA --zookeeper zkIP:2181 --group GROUP_OREGINAL_DATA
3. 通过第2步的排除,怀疑 upload机器与kafka集群不通,用ping命令,确定机器是通的,查看 iptables ,没有信息, 用telnet   kafkaIP   9092 ,不通,提供没有路由(no route to host),怀疑是hosts文件配置问题,确认有正常配置。 把 kafka上的防火墙关了,telnet 通了(这里还要恶补一下防火墙的知识,另外,这个是测试环境,所以可以直接关)。
4. 发数据,重复2,问题还是没有解决。通过修改程序中 topic为 OREGINAL_DATA_NEW 确定 程序是否与 kafka集群通。发现topic有正常创建,但是就是没有消息生产出来。
5. 在upload机器上安装 kafka,通过运行kafka自带的producer 行(命令如下),给新建的topic发数据,发现有报错:
        kafka-console-producer.sh --broker-list kafkaIP:9092 --topic  OREGINAL_DATA_NEW
    报错信息为: org.apache.kafka.common.errors.TimeoutException,通过网上搜索,定位原因是发布到zookeeper的advertised.host.name如果没有设置,默认取java.net.InetAddress.getCanonicalHostName().值,被用于生产端和消费端。因此外部网络或者未配置hostname映射的机器访问kafka集群时就会有网络问题了。
 
6. 配置 kafka 集群的主机名到 upload 机器的hosts 文件中, 发数据,问题解决。
 
这里注明一下,upload表本来是有配置 kafka集群的,但是用的是别名,且 公共配置文件上相关集群机器的配置信息也是用的别名,当时测试用的命令,也是别名。
 
 
关于测试这边的疏漏问题总结:
以前测试都是直接在公共配置文件用的主机名测试(这里用的主机别名的方式还没遇到过),另外,在kafka集群不通的情况下,upload日志居然没有报一点异常,还显示成功,这里对于 异常 情况的测试用例设置有些欠缺,后期要专门整理对程序的异常处理情况做测试,来验证程序的健壮性及自我恢复能力。
一: 通过控制防火墙来模拟网络异常的情况
    1.  在环境正常情况下,把 防火墙打开,确定程序是否正常,日志有没有对应的异常信息协助定位问题
    2.  关闭防火墙,确定程序能否自恢复,日志是否正常
二:要把各种基础服务分开部署,这个涉及到机器的申请,不然测试环境所有服务都部署在一台机器 或者几台机器上,所有网络都是通的,完全无法模拟这种测试环境
 

kafka配置的问题排查的更多相关文章

  1. kafka 配置启动

    Kafka配置(注意log.dirs不要配置在tmp目录下,因为该目录会被linux定时任务删除,会导致kafka崩溃)需要三个Kafka实例,分别安装在下面三个机器上:192.168.240.167 ...

  2. CentOS 下 SonarQube 6.7 的下载、配置、问题排查

    CentOS 下 SonarQube 6.7 的下载.配置.问题排查 系统: CentOS 7 x86_64 SonarQube 版本: 6.7.3 Java 版本: 1.8.0_171 MySQL ...

  3. hadoop生态搭建(3节点)-08.kafka配置

    如果之前没有安装jdk和zookeeper,安装了的请直接跳过 # https://www.oracle.com/technetwork/java/javase/downloads/java-arch ...

  4. Kafka配置信息

    Kafka配置信息 broker配置信息 属性 默认值 描述 broker.id 必填参数,broker的唯一标识 log.dirs /tmp/kafka-logs Kafka数据存放的目录.可以指定 ...

  5. windows下kafka配置入门 示例

    实验平台与软件: 操作系统:windows7 32  位 java 开发包: jdk1.8.0_144 集群: zookeeper-3.3.6 消息队列: kafka_2.11-0.11.0.1 安装 ...

  6. 干货!一次kafka卡顿事故排查过程

    由于一次功能上线后,导致某数据量急剧下滑,给我们紧张的呢!排查过程也是个学习过程(这其中有大部分是领导们的功劳,不过分享给大家应该也不犯法吧,ᐓ) 1. 确认问题的真实性? 被数据部门告知,某数据量下 ...

  7. kafka配置参数

    Kafka为broker,producer和consumer提供了很多的配置参数. 了解并理解这些配置参数对于我们使用kafka是非常重要的.本文列出了一些重要的配置参数. 官方的文档 Configu ...

  8. kafka配置

    官网:http://kafka.apache.org/ 主要有3种安装方式: 1. 单机单broker 2. 单机多broker 3. 多机多broker 1. wget http://mirror. ...

  9. Kafka配置及简单命令使用

    一. Kafka中的相关概念的介绍 Kafka是一个scala实现的分布式消息中间件,其中涉及到的相关概念如下: Kafka中传递的内容称为message(消息),message 是通过topic(话 ...

随机推荐

  1. linux Linux入门

    Linux入门 Linux学习什么? 常用命令(背会) 软件安装(熟练) 服务端的架构(开开眼界) Linux如何学习? 不要问那么多为什么,后面你就懒得问了 先尝试理解一下,不行就背下来 一个知识点 ...

  2. MUI 跨域请求web api

    由于刚接触MUI框架,所以在跨域问题上花了一点时间.希望我的方式能帮你少走点弯路(大神就直接过里吧)! 首先,遇到这个问题,各种百度.其中说法最多的是将mui,js文件里的 setHeader('X- ...

  3. 【python+selenium】截取某个元素

    一. selenium截图1.selenium提供了几个截取全屏的方法- get_screenshot_as_file(self, filename) --这个方法是获取当前window的截图,出现I ...

  4. C# Winform 禁止一个进程运行多次

    禁止一个进程运行多次 using System; using System.Windows.Forms; namespace StartExe { static class Program { /// ...

  5. Hadoop_13_Hadoop Shell脚本采集日志上传到HDFS

    案例1:开发shell采集脚本 1.点击流日志每天都10T,在业务应用服务器上,需要准实时上传至数据仓库(Hadoop HDFS)上 2.一般上传文件都是在凌晨24点操作,由于很多种类的业务数据都要在 ...

  6. linux——实际工作中如何使用linux

    实际工作中,linux系统都不会在我们自己的电脑上,linux系统安装在机房的服务器上,我们操作linux不可能跑到机房去,所以我们需要有一个工具,能在公司通过网络远程连接到机房的linux服务器上 ...

  7. python+selenium之——pip环境变量配置

    将pip的路径……\Python37-32\Scripts添加进Path: 而非……\Python37-32\Lib\site-packages\pip-18.1-py3.7.egg

  8. CSS世界中那些说起来很冷的知识

    CSS世界中那些说起来很冷的知识 最近读了张鑫旭的新书<CSS世界>收获了不少对CSS的深度理解 也正值个人在公司内部进行部分章节的内容分享,于是顺带着直接把我即将分享的内容先给大家过过目 ...

  9. “景驰科技杯”2018年华南理工大学程序设计竞赛 B. 一级棒!(并查集)

    题目链接:https://www.nowcoder.com/acm/contest/94/B 题意:在一棵有 n 个节点的树上,有两种操作,一个是把 u 到 v 的路径走一遍,另一个是查询 u 到 f ...

  10. vue中使用v-chart改变柱状图颜色以及X轴Y轴的文字颜色和大小以及标题

    1.html部分 <ve-histogram :tooltip-visible="true" :x-axis="xAxis" :y-axis=" ...