当前位置: 首页 > news >正文

Kakfa的核心概念-Replica副本(kafka创建topic并指定分区和副本的两种方式)

Kakfa的核心概念-Replica副本(kafka创建topic并指定分区和副本的两种方式)

  • 1、kafka命令行脚本创建topic并指定分区和副本
  • 2、springboot集成kafka创建topic并指定分区和副本
    • 2.1、springboot集成kafka
      • 2.1.1、springboot集成kafka创建topic并指定5个分区和1个副本
      • 2.1.2、往分区中发送消息
      • 2.1.3、springboot集成kafka创建topic并指定9个分区和1个副本
      • 2.1.4、springboot集成kafka创建topic并指定7个分区和1个副本

在这里插入图片描述

1、kafka命令行脚本创建topic并指定分区和副本

在这里插入图片描述

./kafka-topics.sh --create --topic myTopic --partitions 3 --replication-factor 1 --bootstrap-server 127.0.0.1:9092

在这里插入图片描述创建topic成功,有3个分区
在这里插入图片描述

2、springboot集成kafka创建topic并指定分区和副本

在这里插入图片描述

在这里插入图片描述

2.1、springboot集成kafka

2.1.1、springboot集成kafka创建topic并指定5个分区和1个副本

package com.power.config;import org.apache.kafka.clients.admin.NewTopic;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class KafkaConfig {@Beanpublic NewTopic newTopic(){return new NewTopic("heTopic",5,(short) 1);}
}

在这里插入图片描述
创建成功,有5个分区
在这里插入图片描述

2.1.2、往分区中发送消息

在这里插入图片描述
生产者:

package com.power.producer;import com.power.model.User;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.header.Headers;
import org.apache.kafka.common.header.internals.RecordHeaders;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.support.KafkaHeaders;
import org.springframework.kafka.support.SendResult;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Component;
import org.springframework.util.concurrent.ListenableFuture;import javax.annotation.Resource;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;@Component
public class EventProducer {@Resourceprivate KafkaTemplate<String,Object> kafkaTemplate2;public void send9(){User user = User.builder().id(1208).phone("16767667676").birthday(new Date()).build();//分区是null,让kafka自己去决定把消息发送到哪个分区kafkaTemplate2.send("heTopic",null,System.currentTimeMillis(),"k9",user);}
}

测试类:

package com.power;import com.power.model.User;
import com.power.producer.EventProducer;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import javax.annotation.Resource;
import java.util.Date;@SpringBootTest
public class SpringBoot01KafkaBaseApplication {@Resourceprivate EventProducer eventProducer;@Testvoid send9(){eventProducer.send9();}}

生产者发送消息的时候未指定分区,我们发现生产者发送的消息在刚刚创建的5个分区中的最后一个分区。
在这里插入图片描述

2.1.3、springboot集成kafka创建topic并指定9个分区和1个副本

在这里插入图片描述
此时发现刚刚创建的topic变为了9个分区
在这里插入图片描述

2.1.4、springboot集成kafka创建topic并指定7个分区和1个副本

在这里插入图片描述第一次创建heTopic时指定5个分区;
第二次创建heTopic时指定9个分区,增加了4个;
第三次创建heTopic时指定7个分区,topic中分区个数并没有减少;并且第一次topic创建后生产者发送的消息仍然在第5个分区中。
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 136.使用Redis 解决分布式系统下的并发问题
  • 全球卫星星座规划
  • transformers调用llama的方式
  • Transformer系列-10丨一文理解透Transformer
  • webpack打包优化方案
  • 深度学习一(Datawhale X 李宏毅苹果书 AI夏令营)
  • WHAT - graphql 系列(二)- graphql-codegen
  • 【Linux篇】Linux命令基础
  • 大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
  • 【Spring技术】
  • 校友会系统小程序的设计
  • 从web.xml动态读取sunspringmvc.xml文件
  • 重复的DNA序列(LeetCdoe)
  • 【Android】adb devices 出现devices offline的问题
  • HttpMessageNotReadableException
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【翻译】babel对TC39装饰器草案的实现
  • Android组件 - 收藏集 - 掘金
  • Angular6错误 Service: No provider for Renderer2
  • input的行数自动增减
  • javascript 哈希表
  • Laravel 菜鸟晋级之路
  • learning koa2.x
  • magento2项目上线注意事项
  • Material Design
  • mongodb--安装和初步使用教程
  • Nodejs和JavaWeb协助开发
  • Redux 中间件分析
  • 分布式事物理论与实践
  • 官方解决所有 npm 全局安装权限问题
  • 区块链将重新定义世界
  • 深入浅出webpack学习(1)--核心概念
  • 数据仓库的几种建模方法
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 用Visual Studio开发以太坊智能合约
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • #每日一题合集#牛客JZ23-JZ33
  • (02)vite环境变量配置
  • (LeetCode) T14. Longest Common Prefix
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (论文阅读40-45)图像描述1
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (三)docker:Dockerfile构建容器运行jar包
  • (三)模仿学习-Action数据的模仿
  • (数据结构)顺序表的定义
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)EXC_BREAKPOINT僵尸错误