kafka的使用及工作原理

本文详细介绍了Kafka的使用,包括其作为消息队列的作用、架构组件(Producer、Consumer、Consumer Group、Broker等)、消息存储机制、分区操作、数据可靠性和消费数据一致性。还探讨了Kafka的API,特别是Producer API的异步发送流程,并提到了分区策略。
摘要由CSDN通过智能技术生成

记录Kafka的使用

什么是kafka

  • 定义

  • Kafka是分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域

  • 消息队列

  • 削峰:高峰期将任务缓存在消息队列中,持续处理

  • 解耦:不需要两边的处理同时在线

  • 可恢复性:当系统一部分组件失效时,不会影响到整个系统

  • 缓冲:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息速度不一致的问题

  • 异步通信:允许用户将一个消息放入队列,但并不立即处理它

  • 消息队列的模式

  • 1.点对点模式

特点:一对一,消费者主动获取消息,消息被消费后清除

消息生产者可以对应多个消费者,但是消息只能被一个消费者消费
  • 2.发布/订阅模式
特点:一对多,生产者推送数据,消费者消费数据之后不会清除消息

消息生产者将消息发布到topic中,同时有多个消费者消费该消息

发布/订阅模式又分为
MQ主动的推送模式
消费者主动的获取模式
  • kafka基础架构
  • 1.Producer:消息生产者,就是向kafka broker发消息的客户端
  • 2.Consumer:消息消费者,就是向kafka broker拉取消息的客户端
  • 3.Consumer Group:多个Consumer组成一个group,消费者组内的每一个消费者负责消费不同分区的数据,一个分区只能由一个消费者消费,消费者组之间互不影响.消费者组是逻辑上的一个订阅者
  • 4.Broker:一台kafka服务器就是一个broker,一个集群由多个broker组成.一个broker可以容纳多个topic
  • 5.Topic:一个主题,生产者和消费者面向的都是一个主题
  • 6.Partition:一个TOPIC可以分布在不同的BROKER中,由多个Partition组成,每个partition都是一个有序的队列
  • 7.Replica:副本,Broker中维护一个TOPIC的某个partition(Leader)同时还维护了该TOPIC其他partition的follower
  • 8.Leader:每个Topic都由一个若干个Partition组成,而每一个Partition又有1到brokers数量的副本,其中只有主副本(Leader)才能对外提供服务,其他的副本(Follower)只是用来保存数据
  • 9.Follower:每个分区多个副本中的从,主要用于数据备份.当Leader发生故障时,某个follower会成为新的leader
  • 10.注册中心,kafka依赖于zookeeper,作为注册中心

kafka快速入门

  • 安装
    https://www.cnblogs.com/zikai/p/9627736.html
  • 常用命令(命令行)
  • 1.kafka-server-start:启动kafka
通常启动kafka需要指定配置文件
bin/kafka-server-start.sh -daemon config/server.properties

这里使用守护进程启动,使用jps指令可以看到正在执行的kafka
  • 2.kafka-server-stop:停止kafuka服务
bin/kafka-server-stop.sh
  • 3.kafka-topics :主题相关操作
1.kafka-topics --list:查看当前所有主题
  ./kafka-topics.sh --list --zookeeper 7.223.145.184:2181 注意必须跟zk的地址
2.kafka-topics --create:创建主题
  ./kafka-topics.sh --create --zookeeper 7.223.145.184:2181 --topic first --partitions 2 --replication-factor 1
  创建一个名称为first的主题,该主题有2个partition,和1个副本
  
  副本数量最多和Broker数量一样.副本都会存在kafka所在的磁盘log.dirs配置的位置
3.kafka-topics --delete:删除主题
  ./kafka-topics.sh --delete --zookeeper 7.223.145.184:2181 --topic first
4.kafka-topics --describe:查看主题详情
  ./kafka-topics.sh --describe --zookeeper 7.223.145.184:2181 --topic first
  • 4.kafka-console-producer: 生产者
./kafka-console-producer.sh --topic first --bro
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值