kafk学习笔记(一)

kafka消费模式

1.点对点模式:消费者主动拉取消息,消费之后删除数据。

2.发布/订阅模式:如果生产者推给消费者,可能会有些消费者消费比较慢,直接爆炸、或者有些消费者消费很快,资源浪费;一般是消费者主动拉取(但是这样要不停的去询问kafka是否有新消息)。

Kafka基本架构

1.生产者:生产消息给kafka集群。

2.kafka集群:消息队列,暂存消息。

​   borker可以任务是不同的服务器;

​   Topic是指主题,每个主题存不同类型的消息;

​   partition是指分区,分区的作用在于,负载均衡,提高并发率(竖看是分区);

​   leader是相对于分区而言的,并不是相对于broker,而follower是在其中的leader宕机时会被提升为leader,作为副本(leader与follower一定不在一台服务器);

3.消费者:拉取kafka中的消息,消费,存储数据等。

​   消费者组:一个分区同时只能被一个消费者组的一个消费者消费

4.zookper:帮助kafka集群存储一些信息,纪录消费者消费到了哪里(0.9版本之前存在zk中,0.9版本之后存又存在了kafka的一个系统的Topic中,之所以改回去,是因为消费者既要维护与kafka的链接,又要维护与ZK的链接比较浪费资源,另外ZK本身只是各个框架整合的润滑剂,让它高并发并不好)。

  

kafka的配置文件

1.server.properties

​   broker.id:这是borker的全局唯一ID,不可重复,写整数;

​   delete.topic.enable:默认是false,一般会改为true,意思是是否允许真的删除topic;

​   log.dirs:kafka运行日志存放的地址(其实可以认为是数据暂存的地方);

​   log.retention.hours:这是kafka存放运行时日志的最长时间;

​   zookeeper.connect:配置连接zookper的地址

2.在bin目录下有一些常用的命令

  kafka-topics.sh --list --zookeeper:端口号 列出所有的topic

  kafka-topics.sh --create --zookeeper :端口号 --partitions 指定分区数 --replication-factor 指定副本数 创建一个topic

  kafka-topics.sh --delete --zookeeper:端口号 --topic 主题名称 删除指定主题(此时要注意配置文件为true时才真正意义的删除)

  副本数,不能大于borker的数量

  kafka-console-producer.sh --broker-list localhost:9092 --topic events localhost:9092是kafka启动的端口,--topic events是指定发送到某个topic

  kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic events --from-beginning --topic events是指订阅某一个topic的消息。 --from-begining是指从这个topic的第一条消息开始消费

 

 

 

posted @ 2019-10-09 22:55  EasilyAi  阅读(343)  评论(0编辑  收藏  举报