一、kafka基础概念
1、kafka架构:
producer:生产者,(生产馒头)
consumer:消费者,(吃馒头)
borker:篮子 1个kafka <=> 1个borker(放馒头)
topic:主题,给馒头带一个标签,topica的馒头是给xx的,topicd的馒头是给yy吃
二、kafka部署及使用
1、kafka部署及使用
- 单节点单broker部署及使用
- 单节点多broker部署及使用
- 多节点多broker部署及使用
三、单节点单broker部署及使用
1、前提是已经有zookeeper
# 修改配置文件server.properties
############################# Socket Server Settings #############################
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://:9092
# Hostname and port the broker will advertise to producers and consumers. If not set,
host.name=master
############################# Log Basics #############################
# A comma seperated list of directories under which to store log files
log.dirs=/root/bigdata/kafka-log
############################# Zookeeper #############################
# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=master:2181
启动kafka前启动zookeeper
kafka-server-start.sh $KAFKA_HOME/config/server.properties
通过jps查看
2、创建,查看所有topic
# 创建topic
kafka-topics.sh --create --zookeeper master --partitions 1 --replication-factor 1 --topic first_topic
# 查看所有topic的详细信息
kafka-topics.sh --list --zookeeper master:2181
# 查看指定topic的详细信息
kafka-topics.sh --describe --zookeeper master:2181
3、生产消息和消费消息
# 生产消息
kafka-console-producer.sh --broker-list master:9092 --topic first_topic
# 消费消息
kafka-console-consumer.sh --zookeeper master:2181 --topic first_topic --from-beginning
## --from-beginning 代表从头消费
四、单节点多broker部署及使用
1、进行修改config下的server.properties文件
cp server.properties server-1.properties
cp server.properties server-2.properties
cp server.properties server-3.properties
2、修改 server-1.properties
listeners=PLAINTEXT://:9093和broker.id是必须是唯一的,同理进行修改 server-2.properties , server-3.properties
3、后台启动
kafka-server-start.sh -daemon $KAFKA_HOME/config/server-1.properties &
kafka-server-start.sh -daemon $KAFKA_HOME/config/server-2.properties &
kafka-server-start.sh -daemon $KAFKA_HOME/config/server-3.properties &
4、进行查看对应的详细信息
#创建消息
kafka-topics.sh --create --zookeeper master --partitions 1 --replication-factor 3 --topic three_kafka_msg
#生产消息
kafka-console-producer.sh --broker-list master:9093,master:9094,master:9095 --topic th_kafka_msg
#消费消息
kafka-console-consumer.sh --zookeeper master:2181 --topic three_kafka_msg
# 当删除zookeeper中的leader时候,,会自动选举新的leader,kafka中不管是leader还是follow,都可以进行发送消息,消费信息