初步了解kafka
kafka简介
kafka下载地址 kafka官网 kafka是一个分布式消息发布订阅系统,主要特点:易于扩展,高吞吐量 主要术语:
- Topic Kafka将消息种子(Feed)分门别类, 每一类的消息称之为话题(Topic).
- Producer 发布消息的对象称之为话题生产者(Kafka topic producer)
- Consumer 订阅消息并处理发布的消息的种子的对象称之为话题消费者(consumers)
- Broker 已发布的消息保存在一组服务器中,称之为Kafka集群。集群中的每一个服务器都是一个代理(Broker). 消费者可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息。
启动服务端
- 启动ZooKeeper,因为Kafka Cluster使用ZooKeeper ZooKeeper是一个分布式服务框架,主要用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
bin/zookeeper-server-start.sh config/zookeeper.properties
- 启动Kafka Broker
bin/kafka-server-start.sh config/server.properties
- Jps查看进程
$ jps
4407 QuorumPeerMain
4408 Kafka
5291 Jps
QuorumPeerMain是ZooKeeper守护进程,Kafka是Kafka守护进程
创建一个主题
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
replication-factor
分区个数,不同分区会存储到不同的主机(负载均衡),分区写入策略(1、轮询策略,2、随机策略,3、按键保存策略)
partitions
副本个数,仅用于数据冗余
获取主题列表
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
生产者示例
bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
bootstrap-server
代理列表,kafka服务端配置文件中指定
消费者示例
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 —topic topic-name --from-beginning
from-beginning
读取历史未消费的数据