Kafka入门到实战-第五弹

Kafka入门到实战

  • Kafka常见操作
    • 官网地址
    • Kafka概述
    • Kafka的基础操作
    • 更新计划

Kafka常见操作

官网地址

声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准

https://kafka.apache.org/

Kafka概述

Apache Kafka 是一个开源的分布式事件流平台,提供高性能数据管道、流分析、 数据集成和任务关键型应用程序。

Kafka的基础操作

本节将在Kafka集群上执行。所有工具都可以在Kafka发行版的bin/目录下使用,如果在没有参数的情况下运行,每个工具都会打印所有可能的命令行选项的详细信息。

  • 添加和删除主题 创建一个名为 my_topic_name的主题, 分区为10, 副本数为2(上次搭建的集群只有两个broker), 保留时间是1天

    bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic my_topic_name \--partitions 10 --replication-factor 2 --config retention.ms=86400000
    

    在这里插入图片描述

  • 查看分区是否正常创建 ls /tmp/kraft-combined-logs/
    在这里插入图片描述

  • 删除主题, 可以看到分区被逻辑删除啦,

    bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic my_topic_name
    

    在这里插入图片描述

  • 修改主题, 只需要把delete 改为alert即可

  • 优雅地关闭, 以下内容直接参考官网, 未在本机上测试

    • 关闭生产者
    • 关闭消费者
    • 添加controlled.shutdown.enable=true
    • bin/kafka-server-stop.sh
  • 设置具有优先的领导权, 用于一个服务实例宕机启动

    auto.leader.rebalance.enable=true
    
  • 跨机架平衡复制副本, 实现Kafka故障转移和容灾备份

     broker.rack=my-rack-id
    
  • 查看消费者的位置

    bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group
    
  • 管理消费者组

    bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
    
  • 列出消费者组详细信息

    bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group
    
    • 还可以加一些参数
    • –members 提供使用者组中所有活动成员的列表
    • –members --verbose 还提供分配给每个成员的分区
    • –offsets 默认的description选项,提供与“–description”选项相同的输出
    • –state 提供有用的组级别信息
    • –delete 删除一个或多个消费者组
  • 扩展集群

  • 下线服务实例

  • 增加复制因子

  • 限制数据迁移期间的带宽使用

  • 配置额度

    • 自定义额度对于 (user=user1, client-id=clientA)

      bin/kafka-configs.sh  --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type users --entity-name user1 --entity-type clients --entity-name clientA
      
    • 自定义额度对于 user=user1

      bin/kafka-configs.sh  --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type users --entity-name user1
      
    • 自定义额度对于 client-id=clientA

      bin/kafka-configs.sh  --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type clients --entity-name clientA
      
    • 为user=userA配置默认客户端id配额

      bin/kafka-configs.sh  --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type users --entity-name user1 --entity-type clients --entity-default
      
    • 配置默认配额对于user

      bin/kafka-configs.sh  --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type users --entity-default
      
    • 配置默认配额对于client-id

      bin/kafka-configs.sh  --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type clients --entity-default
      
    • 查询分配的配额 (user, client-id)

      bin/kafka-configs.sh  --bootstrap-server localhost:9092 --describe --entity-type users --entity-name user1 --entity-type clients --entity-name clientA
      
    • 查询分配的配额 (user)

      bin/kafka-configs.sh  --bootstrap-server localhost:9092 --describe --entity-type users --entity-name user1
      
    • 查询分配的配额 (client-id)

      bin/kafka-configs.sh  --bootstrap-server localhost:9092 --describe --entity-type clients --entity-name clientA
      
    • 查询分配的配额 (所有user)

      bin/kafka-configs.sh  --bootstrap-server localhost:9092 --describe --entity-type users
      
    • 查询分配的配额 (所有user, client-id)

      bin/kafka-configs.sh  --bootstrap-server localhost:9092 --describe --entity-type users --entity-type clients
      

更新计划

下一部分是Kafka实战的代码部分, 敬请期待…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/792033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot+vue实现的酒店客房管理系统

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】:Java 【框架】:spring…

昇腾训练执行与推理部署系列 入门: 1.开启异腾AI之旅

一、1认识CANN 1、昇腾AI基础软硬件平台介绍2、CANN逻辑架构介绍 1、昇腾AI基础软硬件平台介绍 2、CANN逻辑架构介绍

普联一面4.2面试记录

普联一面4.2面试记录 文章目录 普联一面4.2面试记录1.jdk和jre的区别2.java的容器有哪些3.list set map的区别4.get和post的区别5.哪个更安全6.java哪些集合类是线程安全的7.创建线程有哪几种方式8.线程的状态有哪几种9.线程的run和start的区别10.什么是java序列化11.redis的优…

商品购买过程中,库存的抵扣过程是怎样的?如何防止超卖?

在商品购买的过程中,库存的抵扣过程,一般操作如下: 1、select根据商品id查询商品的库存。 2、根据下单的数量,计算库存是否足够,如果存库不足则抛出库存不足的异常,如果库存足够,则减去扣除的…

mysql+keepalive+lvs搭建的数据库集群实验

前提条件:准备5台计算机,且网络互通 1、客户端 yum groups -y install mariadb-client ip 192.168.0.5 2、lvs1 yum-y install ipvsadm keepalived ip 192.168.0.1 keepalivedvip 192.168.0.215 /etc/hosts 解析192.168.0.1 主机名 3、lvs2 yum-y i…

为什么android创建Fragment推荐用newInstance

FullScreenDialogFragment使用newInstance方法不是因为它是一个单例,而是因为这是创建DialogFragment实例并同时提供参数的一种标准模式。这种模式通常称为静态工厂方法模式,在Android开发中被广泛使用,尤其是用于Fragment的实例化。 newIns…

前视声呐目标识别定位(五)-代码解析之修改声呐参数

前视声呐目标识别定位(一)-基础知识 前视声呐目标识别定位(二)-目标识别定位模块 前视声呐目标识别定位(三)-部署至机器人 前视声呐目标识别定位(四)-代码解析之启动识别模块 …

Java最短路径算法知识点(含面试大厂题和源码)

最短路径算法是计算机科学和图论中的核心问题之一,它旨在找到从一个顶点到另一个顶点或在所有顶点之间的最短路径。这个问题在多种实际应用中都非常重要,如网络路由、交通规划、社交网络分析等。以下是一些与最短路径算法相关的知识点: Dijks…

DHT11温湿度传感器使用视频教程分享

下载地址: 温湿度计(STCDHT11): https://url83.ctfile.com/d/45573183-60623983-9b7f6c?p7526 (访问密码: 7526)

Java常用类和基础API

文章目录 1. 字符串相关类之不可变字符序列:String1.1 String的特性1.2 String的内存结构1.2.1 概述1.2.2 练习类型1:拼接1.2.3 练习类型2:new1.2.4 练习类型3:intern() 1.3 String的常用API-11.3.1 构造器1.3.2 字符串对象的比较…

解决酷狗官网无法播放音乐问题

播放歌曲页面无法播放歌曲,有CORS错误,困扰我很久了。 谷歌浏览器优雅的关闭cors跨域_浏览器关闭跨域-CSDN博客 "C:\Program Files\CatsxpSoftware\Catsxp-Browser\Application\catsxp.exe" --disable-web-security --user-data-dirE:\catsxp…

【学习笔记】java项目—苍穹外卖day10

文章目录 苍穹外卖-day10课程内容1. Spring Task1.1 介绍1.2 cron表达式1.3 入门案例1.3.1 Spring Task使用步骤1.3.2 代码开发1.3.3 功能测试 2.订单状态定时处理2.1 需求分析2.2 代码开发2.3 功能测试 3. WebSocket3.1 介绍3.2 入门案例3.2.1 案例分析3.2.2 代码开发3.2.3 功…

JavaScript之applye、bind和call方法详解

Question Q1 apply()、bind()和call()方法的区别在哪? Q2 apply()和call()的应用场景 Q3 apply()、bind()和call()方法手写实现逻辑 来源 继承自Function.prototype,属于实例方法 console.log(Function.prototype.hasOwnProperty(call)) //trueconsole.l…

Fusion360修改嘉立创EDA专业版生成的3D外壳文件

需要第三方软件的原因 嘉立创EDA专业版生成电路板的3D外壳文件是比较快捷的,但如果侧面精密开孔或者添加其它非常规的元素还是有些局限。嘉立创EDA专业版可以把3D外壳文件导出,这就大大方便了第三方软件的修改。 本文是利用Fusion360修改3D外壳文件&…

Waifu2x:使用深度卷积神经网络的动漫风格艺术的图像超分辨率

Github网址:nagadomi/waifu2x:动漫风格艺术的图像超分辨率 (github.com) 该项目主要讲述的是如何利用预训练的深度学习模型来达到无损扩大收缩和去噪,对于一般训练图像的小伙伴应该很清晰图像经常要通过resize操作固定大小,然后c…

个人推荐Redis比较好的一种使用规范

随着对个人项目的不断开发、迭代和重构,博主在这个过程中总结出了一套使用redis的较好的规范。主要包含Redis的key命名规范和Redis代码规范。 主要内容 主要包含以下几个内容: 同一应用的key在最前面添加统一的前缀,如应用名; 案…

某华为hr擅自给我报名机

某华为hr擅自报名机考 上周,牛客网一位同学爆料: ❝ 今年一月份,华为一位 HR 通过某招聘网站联系到他,然后通过该 HR 加上了业务工程师的微信。随后,该工程师在「经过他本人同意」的情况下,在系统录入了他的…

CSGO比赛赛事大科普,Major并不是一个赛事!

关于CSGO比赛,有很多人都听过许多相关名词:Major、Minor、IEM、EPL、ESL ONE、Dreamhack、ESEA、Blast、EPICENTER等等,但大家有没有想过这些名词所代表的含义呢? Major、Minor严格意义上说,Major、Minor本身并不是赛事…

深入浅出 -- 系统架构之分布式架构

​​​​​​分布式架构: 根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。 当垂直应用越来越多时,应用之间的交互不可避免,可将共用的基础服务或核心模块抽取出来作为独立服务&#xff0c…

接口练习题目

练习一 1、声明接口Eatable,包含抽象方法public abstract void eat(); 2、声明实现类中国人Chinese,重写抽象方法,打印用筷子吃饭 3、声明实现类美国人American,重写抽象方法,打印用刀叉吃饭 4、声明实现类印度人Indi…