本章目录node
一 kafka简介服务器
二 kafka安装网络
三 kafka测试测试
四 zk安装spa
一 kafka简介:code
一、角色:server
broker(一个kafka节点)中间件
producers(生产者)blog
topic(主题)ip
consumers(消费者,消费者能够配置组,让这一组消费哪一个主题,在一个分区中的生产与消费是有序的)
partition(topic的分区数,即表明这个topic数据分红几份)
副本(topic的副本数,万一有的节点挂掉了,能够保证数据不丢失)
offset(消费的偏移量,保证消费的有序性)
二、须要zk集群,为何?(zk在kafka中占据核心地位的)
2.1 管理着全部 broker 节点。
2.2 主题管理:topic怎么建立,分区,副本怎么放,消费者如何消费,由zk管理。
2.3 记录offset。
2.4 管理者消费者组:一个消费者组建立以后,来消费一个topic(消费者组是为了提升对topic的消费速度)
三、优点
高吞吐量:零拷贝,Netty的网络传输。
数据保存:数据默认保存7天。
偏移量管理:offset会更新到一个kafka自带的topic【__consumer_offsets】
二 kafka安装:
解压:
tar gz -C 目录
配置:
config/server.properties:
broker.id(broker集群中惟一标识id,0、一、二、3依次增加(broker即Kafka集群中的一台服务器))
log.dirs=真实数据存储路径
zookeeper.connect=node01:2181,node02:2181,node03:2181(须要zk集群)
启动:
bin/kafka-server-start.sh config/server.properties //启动kafka,且指定要读取哪一个配置文件
三 kafka测试:(通常的使用都是整合其余中间件使用,好比filebeat,flume等)
查看帮助手册:
bin/kafka-console-consumer.sh help
查看topic列表:
bin/kafka-topics.sh --zookeeper node06:2181,node07:2181,node08:2181 --list
查看“test”topic描述:
bin/kafka-topics.sh --zookeeper node06:2181,node07:2181,node08:2181 --describe --topic test
Topic建立
bin/kafka-topics.sh --zookeeper node06:2181,node07:2181,node08:2181 --create --replication-factor 2 --partitions 3 --topic test
(参数说明:
--replication-factor:副本个数,默认1个
--partitions:指定当前建立的topic分区数量,默认1个(向几个分区中分发数据,此时一个分区有序,总体无序)
--topic:指定新建topic的名称
)
Producer建立(往主题中生产数据)
bin/kafka-console-producer.sh --broker-list node06:9092,node07:9092,node08:9092 --topic test
Consumer建立(消费某主题的数据)
bin/kafka-console-consumer.sh --zookeeper node06:2181,node07:2181,node08:2181 --from-beginning --topic test
(参数说明:
--from-beginning 从头消费
)
四 zk安装:
1:解压 tar -zxvf zookeeper.tar.gz
2:修改 zoo.cfg 配置文件
cp zooo_sample.cfg zoo.cfg
vi zoo.cfg
dataDir= /opt/zk/data //修改dataDir的目录,用户数据持久化的,这个目录自定义位置 #在zoo.cfg末尾添加如下内容 #2888 集群内机器通信使用 #3888 选举leader使用 #2181 这个端口号是供外部客户端使用的,配置文件中的clientport
#使用node01 node02 node03是配置了hosts文件,作了ip与名称的映射 server.1=node01:2888:3888 server.2=node02:2888:3888 server.3=node03:2888:3888
3:myid(在dataDir目录下)
echo 1 > /opt/zk/data/myid(上面配置的三个服务器对应的myid是1 2 3)
4:启动(每一个节点都启动)
zkServer.sh start