kafka 3.x 学习笔记

news/2024/6/18 6:31:14 标签: kafka, java

kafka_3x__0">kafka 3.x 学习笔记

kafka 2.8.0 版本之前,安装使用 kafka 需要配套安装 zookeeper,但在 2.8.0 版本之后,不再需要安装 zookeeper,本次学习笔记采用的 kafka 版本为 3.0.0。

文章目录

    • kafka 3.x 学习笔记
      • 一、kafka 定义
        • 1 什么是 kafka
        • 2 消息队列
        • 3 消息队列应用场景
        • 4 消息队列的两种模式
        • 5 kafka 基础架构
      • 二、Centos 7 安装 kafka
      • 三、kafka 命令操作

kafka__4">一、kafka 定义

kafka_5">1 什么是 kafka
  • 传统定义:kafka 是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。

    • 发布/订阅:消息的发布者不会将消息发给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息。
  • kafka 是一个开源的分布式事件流平台,被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。


2 消息队列

市面上常见的消息队列产品主要有 kafka、ActiveMQ、RabbitMQ、RocketMQ 等。在大数据领域主要采用 kafka 作为消息队列,在 java web开发中主要采用 ActiveMQ、RabbitMQ、RoketMQ。


3 消息队列应用场景
  • 缓冲/消峰:尤其是特定环境下大量的并发请求,后端接口不能在短时间承受这些大量的接口,因此采用消息队列做缓冲处理。


  • 异步解耦:举例一个通俗易懂的案例:现在的很多平台都提供了借钱的入口,比如美团,我猜测美团后台的逻辑大致应该是这样的:

    • 1、首先用户提交个人信息;

    • 2、美团后端接收到用户信息后,进行借款额度判断:

      比如调用法院官网,查看此人是不是老赖;
      调用银行的征信系统,查看此人征信是否良好等等;
      调用政府相关部门官网,查看此人是否有房产车产等等。
      调用完毕后,得出一个初始的可款额度。

    • 3、将用户存入借款用户表;

    • 4、调用第三方短信服务,向用户发送借款额度的通知短信;

    • 5、美团 app 向用户展示可借款金额,然后向用户确认是否借款,如借款则向用户银行卡转账。

举例的这个小案例,只是本人的猜测,如果这些步骤采用同步的方式设计的话,显然很不友好,采用异步不仅能解耦,也能加快后端服务的响应速度。

4 消息队列的两种模式
  • 点对点模式:消费者主动拉取数据,消息收到后清楚消息。
  • 发布/订阅模式:可以有多个 topic 主题,消费者获取自己对应的 topic,消费者消费数据之后,不删除数据,并且消费者之间相互独立。

kafka__51">5 kafka 基础架构

在这里插入图片描述
但是对于每个 topic,数据量太大的时候为提高吞吐量,可以将 topic 进行分而治之:

在这里插入图片描述

kafka_58">二、Centos 7 安装 kafka

kafka 官方地址:http://kafka.apache.org/downloads.html

在这里插入图片描述
1 在官网下载安装包后上传至服务器,进行解压安装:

java">tar -zxvf kafka_2.12-3.0.0.tgz

2 把 kafka_2.12-3.0.0 重命名:kafka

java">mv kafka_2.12-3.0.0 kafka

在这里插入图片描述

3 启动 kafka

java">bin/kafka-server-start.sh -daemon config/server.properties
// 查看是否启动成功
jps 

在这里插入图片描述

kafka__80">三、kafka 命令操作

  • 操作 topic 相关命令

1 查看 topic 相关命令

java">bin/kafka-topics.sh

2 常用命令

参数描述
–bootstrap-server <String:ser toconnece to>连接的 Kafka Broker 主机名称和端口号
–topic <String: topic>操作的 topic 名称
–create创建主题
–delete删除主题
–alter修改主题
–list查看所有主题
–describe查看主题详细描述
–partitions <Integer: # of partitions>设置分区数
–replication-factor<Integer: replication factor>设置分区副本
–config String:name=value更新系统默认的配置

http://www.niftyadmin.cn/n/5238449.html

相关文章

spring cloud nacos整合gateway

文章目录 gateway快速入门创建gateway服务&#xff0c;引入依赖编写启动类编写基础配置和路由规则重启测试网关路由的流程图 断言工厂过滤器工厂路由过滤器的种类请求头过滤器默认过滤器总结 全局过滤器全局过滤器作用自定义全局过滤器过滤器执行顺序 跨域问题什么是跨域问题解…

RocketMQ两主两从部署搭建

安装部署 1.1 部署环境 1.2 安装要求 建议使用64位操作系统&#xff0c;建议使用Linux / Unix / Mac&#xff1b; 64位JDK 1.8; Maven 3.2.x;&#xff08;非必要&#xff09; Git&#xff1b;&#xff08;非必要&#xff09; 1.3 获取rocketmq安装包&#xff0c;并解压 下载官…

同旺科技 USB TO SPI / I2C --- 调试W5500_TCP Client接收数据

所需设备&#xff1a; 内附链接 1、USB转SPI_I2C适配器(专业版); 首先&#xff0c;连接W5500模块与同旺科技USB TO SPI / I2C适配器&#xff0c;如下图&#xff1a; 发送数据6个字节的数据&#xff1a;0x11,0x22,0x33,0x44,0x55,0x66 在专业版调试软件中编辑指令&#xff0c…

设计模式之代理模式(1)

目录 概述定义应用场景主要角色类图 详述基本代码应用实例符合的设计原则 总结 概述 定义 代理模式是一种结构型设计模式&#xff0c;它允许通过一个代理对象来控制对原始对象的访问。代理对象可以在不改变原始对象的情况下&#xff0c;增加一些额外的功能&#xff0c;例如权限…

spark sql基于RBO的优化

前言 这里只对RBO优化进行简单的讲解。讲解RBO之前必须对spark sql的执行计划做一个简单的介绍。 这个里讲解的不是很清楚&#xff0c;需要结合具体的执行计划来进行查看 1、执行计划 在spark sql的执行计划中&#xff0c;执行计划分为两大类&#xff0c;即逻辑执行计划、物…

UDS 诊断报文格式

文章目录 网络层目的N_PDU 格式诊断报文的分类&#xff1a;单帧、多帧 网络层目的 N_PDU(network protocol data unit)&#xff0c;即网络层协议数据单元 网络层最重要的目的就是把数据转换成符合标准的单一数据帧&#xff08;符合can总线规范的&#xff09;&#xff0c;从而…

第二十四章 控制到 XML 模式的映射

文章目录 第二十四章 控制到 XML 模式的映射查看支持xml的类的模式 第二十四章 控制到 XML 模式的映射 对于任何支持XML的类&#xff0c;都有一个用于该类的隐式XML模式&#xff0c;可以查看它。 IRIS 提供了修改该模式的方法。 本主题中的XML示例采用文字格式。 类和属性参…

12.4_黑马MybatisPlus笔记(下)

目录 11 12 thinking&#xff1a;关于Mybatis Plus中BaseMapper和IService&#xff1f; 13 ​编辑 thinking&#xff1a;CollUtil.isNotEmpty? 14 thinking&#xff1a;Collection、Collections、Collector、Collectors&#xff1f; thinking&#xff1a;groupBy&#…