[DB] Kafka
时间:2021-07-01 10:21:17
帮助过:28人阅读
介绍
- 一种高吞吐量的分布式发布订阅消息系统
- 消息类型:主体Topic(广播)、队列Queue(一对一)
- 消息系统类型:同步消息系统、异步消息系统
- 常见消息产品:Redis、Kafka、JMS
术语
- Topic:Kafka处理消息源(feeds of messages)的不同分类(不同于传统MQ)
- Partition:Topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset),一个分区对应一个消费者
- Message:消息,是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息
- Producers:消息和数据生产者,向Kafka的一个topic发布消息的过程叫做producers
- Consumers:消息和数据消费者,订阅topics并处理其发布的消息的过程叫做consumers
- Broker:缓存代理,Kafka集群中的一台或多台服务器统称为broker
设计要点
- 内存访问:使用Linux文件系统的cache,高效缓存数据
- 磁盘持久化:不再内存中cache,直接顺序写入磁盘
- zero-copy:减少IO操作
- 消息处理:支持数据批量发送压缩
- 主题分区:Topic划分为多个partition,提高消息处理并行度
- 负载均衡:producer根据用户指定算法,将消息发送到指定的partition
- 消息拉取:简化kafka设计,consumer根据消费能力自主控制消息拉取速度,自主选择消费模式
- 可扩展性:需要增加broker结点时,新增broker向zk注册,procucer和consumer根据zk上的watcher调整
应用场景
命令
- 配置文件:config/server.properties
- 启动:bin/kafka-server-start.sh config/server.properties &
- 创建主题:bin/kafka-topics.sh --create --zookeeper bigdata111:2181 -replication-factor 1 --partitions 3 --topic mydemo1
- 生产者:bin/kafka-console-producer.sh --broker-list bigdata111:9092 --topic mydemo1
- 消费者:bin/kafka-console-consumer.sh --zookeeper bigdata111:2181 --topic mydemo1
参考
Kafka入门经典教程
https://blog.csdn.net/hmsiwtv/article/details/46960053
[DB] Kafka
标签:tps off lin broker loading 批量 主题 https 均衡