• kafka的安装和使用


    前置条件:

    需要安装zookeeper集群:zookeeper学习之路(三)zk集群_解决问题no解决代码问题的博客-CSDN博客

    apache-zookeeper-3.7.1-bin

    kafka_2.12-2.1.1.

    java   "1.8.0_131"
     

    一,安装

    kafka的安装和使用

    kafka.apache.org  kafka_2.12-2.1.1

    CentOS71- CentOS74

    kafka :  (CentOS72:192.168.19.28,CentOS73:192.168.19.38,CentOS74:192.168.19.48)

    zookeeper : (CentOS71:192.168.19.18,CentOS72:192.168.19.28,CentOS73:192.168.19.38)

    1,记录zk的目录下的内容

         规范:不要在zk根目录下使用其他中间件或信息,需要添加前置路径,单独隔离开

    1. [zk: localhost:2181(CONNECTED) 0] ls /
    2. [zookeeper]

    2,kafka的配置文件server.properties

    1. broker.id=0
    2. listeners=PLAINTEXT://192.168.19.48:9092
    3. log.dirs=/applog/kafka/
    4. zookeepr.cooenct=192.168.19.28:2181,192.168.19.38:2181,192.168.19.18:2181/kafka

    3,常规操作

    /etc/profile  添加安装的中间件,是为了在任何地方都能使用对应的命令

    1. #使生效
    2. . /etc/profile

    4,节点同步 scp

    scp /etc/profile ip:/etc/profile

    5.启动

    1. zkServer.sh start 
    2. jps
    3. cd $KAFKA_HOME/config
    4. kafka-server-start.sh ./server.properties

    6.zk查看多了kafka目录

    1. [zk: localhost:2181(CONNECTED) 0] ls /
    2. [kafka, zookeeper]
    3. [zk: localhost:2181(CONNECTED) 6] get /kafka/cluster/id
    4. {"version":"1","id":"TB1v-oDwSfC_ioil7mF7aA"}
    5. [zk: localhost:2181(CONNECTED) 7] get /kafka/controller
    6. {"version":1,"brokerid":1,"timestamp":"1661332307575"}
    7. [zk: localhost:2181(CONNECTED) 8] ls /kafka/brokers
    8. [ids, seqid, topics]

    在zk里可以看到一些kafka的源数据;

    每台里是只启动了一个Java的的kakka的broker,broker就是一个普通的java程序。

    使用kafka需要先创建主体topic,没有的话,生产者的数据没地方去,消费者也没办法订阅。

    二,使用

    1,创建topics

    cd $KAFKA_HOME/bin

    查看topics.sh功能和对应参数

    1. [root@localhost bin]# kafka-topics.sh
    2. OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
    3. Create, delete, describe, or change a topic.
    4. Option Description
    5. ------ -----------
    6. --alter Alter the number of partitions,
    7. replica assignment, and/or
    8. configuration for the topic.
    9. --config <String: name=value> A topic configuration override for the
    10. topic being created or altered.The
    11. following is a list of valid

    创建topic是由controller的broker去完成的

    老版本的命令是统一的,都是zookeepr..什么的,新版本是因为zk本身是分布式协调,而不是数据存储,部分数据放到了kafka的broker内,所以命令会有不统一的问题。

     partions:主题分区数。kafka通过分区策略,将不同的分区分配在一个集群中的broker上,一般会分散在不同的broker上,当只有一个broker时,所有的分区就只分配到该Broker上。

    replication-factor:用来设置主题的副本数。每个主题可以有多个副本,副本位于集群中不同的broker上,也就是说副本的数量不能超过broker的数量,否则创建主题时会失败。

    2.2版本前后创建topic的命令对比

    命令是一行,我为了展示分成两行

    1. #–zookeeper 192.168.19.28192.168.19.38:2181/kafka
    2. kafka-topics.sh --zookeeper 192.168.19.38:2181/kafka
    3. --create --topic ooxx --partitions 2 --replication-factor 2

    2.2版本以后 –bootstrap-server 192.168.31.51:9092 替代原先的–zookeeper 192.168.19.38:2181/kafka参数

    1. kafka-topics.sh ​--bootstrap-server 192.168.19.48:9092 
    2. --create --topic ooxx --partitions 2 --replication-factor 2

    创建 一个有两个分区,两个副本数,名字叫ooxx的分区

    1. [root@localhost bin]# kafka-topics.sh --create --zookeeper 192.168.19.38:2181/kafka --topic ooxx --partitions 2 --replication-factor 2
    2. Created topic "ooxx".

    2,查看集群的分区

    1. [root@localhost bin]# kafka-topics.sh --list --zookeeper 192.168.19.38:2181/kafka
    2. ooxx

    3查看分区的属性

    分区Partition备份只是做可靠性,实际读写操作还是leader,所以分区Partition不可能因为副本的增加而增加读写性能。

    1. [root@localhost bin]# kafka-topics.sh --zookeeper 192.168.19.38:2181/kafka --describe --topic ooxx
    2. Topic:ooxx PartitionCount:2 ReplicationFactor:2 Configs:
    3. Topic: ooxx Partition: 0 Leader: 2 Replicas: 2,3 Isr: 2,3
    4. Topic: ooxx Partition: 1 Leader: 3 Replicas: 3,1 Isr: 3,1
  • 相关阅读:
    [基于瑞芯微RV1126调试RTL8818FU WIFI模组支持STA和AP模式]
    Esri美国个人许可购买指南
    (标签-ios|关键词-stream)
    Apache ECharts简介和相关操作
    信息学奥赛一本通 2074:【21CSPJ普及组】分糖果(candy) | 洛谷 P7909 [CSP-J 2021] 分糖果
    ◢Django 自写分页与使用
    详解Redis基础数据类型Set增删查(带Java源码)
    计算机专业毕业论文java毕业设计开题报告SSM超市管理系统[包运行成功]
    区块链技术在金融领域的应用场景
    C语言 深入探究C语言中的文件操作
  • 原文地址:https://blog.csdn.net/qq_39308071/article/details/126574024