下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

这下我终于懂了,如何验证 Kafka 系统的可靠性?

作者:Java高级架构师阿谷     来源: 今曰头条点击数:927发布时间: 2019-11-29 14:04:24

标签: 编程语言编程语言视频编程语言学习视频

大神带你学编程,欢迎选课

  当通过 Kafka 构建的系统需要提供特定的可靠性,我们对 Kafka 做了相应配置,对生产者和消费者的应用做了必要的处理之后,如何验证整个系统确实实现了期望的可靠性呢?本文介绍。我们一起看看下:

  

这下我终于懂了,如何验证 Kafka 系统的可靠性?_ 编程语言_编程语言视频_编程语言学习视频_课课家

 

  内容提要:

  概述

  验证配置

  验证应用

  线上监控

  1. 概述

  仍然是那句话,可靠性不是一个可以轻易获得的东西,验证的方法也不简单,分为三个阶段:

  在没有生产者和消费者参与的情况下,对 Kafka 的配置进行验证,确认 Kafka 的表现与预期一致;

  加入生产者和消费者的应用,确认生产者和消费者的表现和预期一致;

  应用上线后,对应用和 Kafka 的指标、日志等进行监控,发现与可靠性有关的问题,进行修复。

  2. 验证配置

  验证:其实就是测试,实际效果和预期效果是否一致,因此在验证前必须确认期望看到的结果,如果这一步有误差,验证可能很难成功。

  验证配置不是指用肉眼去确认配置文件是否正确,而是使用 Kafka 提供的工具,Kafka 在 org.apacha.kafka.tools 包下有两个类:VerifiableProducer 和 VerifiableConsumer,这两个类既可以通过命令行运行,也可以在各种测试框架中使用。

  VerifiableProducer 可以按照我们指定的参数来发送一定数量的消息,消息内容为从 1 开始递增的数字,参数包括 acks,重试次数和发送速率等等,运行时会打印每条消息发送成功或失败。VerifiableConsumer 消费 VerifiableProducer 生产的消息,按照消费顺序打印消息内容,并且打印提交 offset 和分区重分配的消息。

  下面来实战一下,先看下这两个命令行工具都有哪些参数:

  

 

  

 

  因为我也是第一次使用,所以我就随便选几个参数设置一下:

  使用 VerifiableProducer 发送数据:

  

 

  然后用 VerifiableConsumer 接收收据:

  

 

  因为将 max-messages 设置为 10,而 topic 中只有 5 条消息,所以没有退出。

  以上只是演示,因为 broker 只有一台,而且非常稳定,实际测试时需要构建更复杂的场景:

  leader 选举,关掉 leader 所在的 broker,producer 和 consumer 需要多长时间恢复?

  controller 选举,重启 controller,整个系统需要多长时间恢复?

  滚动重启,一台一台的重启 broker,能否做到一条消息都不丢失?

  脏 leader 选举,当发生了脏 leader 选举时,producer 和 consumer 会发生什么,能否接受后果?

  这些就是今天全部内容,欲知详情,请看下回分解。根据实际的需要去构建测试场景,当测试都通过之后可以进入下一步。

赞(15)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程