初步了解kafka

kafka简介

kafka下载地址
kafka官网
kafka是一个分布式消息发布订阅系统,主要特点:易于扩展,高吞吐量
主要术语:

  1. Topic
    Kafka将消息种子(Feed)分门别类, 每一类的消息称之为话题(Topic).
  2. Producer
    发布消息的对象称之为话题生产者(Kafka topic producer)
  3. Consumer
    订阅消息并处理发布的消息的种子的对象称之为话题消费者(consumers)
  4. Broker
    已发布的消息保存在一组服务器中,称之为Kafka集群。集群中的每一个服务器都是一个代理(Broker). 消费者可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息。

启动服务端

  1. 启动ZooKeeper,因为Kafka Cluster使用ZooKeeper
    ZooKeeper是一个分布式服务框架,主要用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
bin/zookeeper-server-start.sh config/zookeeper.properties
  1. 启动Kafka Broker
bin/kafka-server-start.sh config/server.properties
  1. 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读取历史未消费的数据