java-kafka概述及zookeeper安装

本章目录

  一 kafka简介

  二 kafka安装

  三 kafka测试

  四 zk安装

 

一 kafka简介

  1、角色:

    broker(一个kafka节点)

    producers(生产者)

    topic(主题)

    consumers(消费者,消费者可以配置组,让这一组消费哪个主题,在一个分区中的生产与消费是有序的)

    partition(topic的分区数,即代表这个topic数据分成几份)

    副本(topic的副本数,万一有的节点挂掉了,可以保证数据不丢失)

    offset(消费的偏移量,保证消费的有序性)

  2、需要zk集群,为什么?(zk在kafka中占据核心地位的

    2.1 管理着所有 broker 节点。

    2.2 主题管理:topic怎么创建,分区,副本怎么放,消费者如何消费,由zk管理。

    2.3 记录offset。

    2.4 管理者消费者组:一个消费者组创建之后,来消费一个topic(消费者组是为了提高对topic的消费速度)

  3、优势

    高吞吐量:零拷贝,Netty的网络传输。

    数据保存:数据默认保存7天。

    偏移量管理:offset会更新到一个kafka自带的topic【__consumer_offsets】

二 kafka安装:

  解压:

    tar gz -C 目录

  配置:

    config/server.properties:

      broker.idbroker集群中唯一标识id,0、1、2、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

猜你喜欢

转载自www.cnblogs.com/dblog/p/12206125.html