美文网首页
kafka——入门

kafka——入门

作者: chase_lwf | 来源:发表于2021-01-03 19:43 被阅读0次

    内容

    • kafka安装
    • kafka基本知识
    • kafka demo例子
    • 引用

    一 安装kafka

    1、kafka需要zookeeper管理,所以需要先安装zookeeper。 
    
    下载zookeeper镜像
    $ docker pull wurstmeister/zookeeper
    
        解决docker pull 速度慢问题
        将docker镜像源修改为国内的:
        在 /etc/docker/daemon.json 文件中添加以下参数(没有该文件则新建):
        {
            "registry-mirrors": ["https://mj9kvemk.mirror.aliyuncs.com"]
        }
        服务重启:
        systemctl daemon-reload
        systemctl restart docker
    
    2、启动镜像生成容器
    ## docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper
    $ docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2  --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper
    
    3、下载kafka镜像
    $ docker pull wurstmeister/kafka
    
    4、启动kafka镜像生成容器
    ## docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.6.121:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.6.121:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka
    $ docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.16.0.13:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.0.13:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka
    参数说明:
    -e KAFKA_BROKER_ID=0  在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
    
    -e KAFKA_ZOOKEEPER_CONNECT=172.16.0.13:2181/kafka 配置zookeeper管理kafka的路径172.16.0.13:2181/kafka
    
    -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.0.13:9092  把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP,类如Java程序访问出现无法连接。
    
    -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
    
    -v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间
    
    5、验证kafka是否可以使用
    
    5.1、进入容器
    $ docker exec -it kafka bash
    
    5.2、进入  cd /opt/kafka_2.12-2.5.0/bin/ 目录下
    $ cd /opt/kafka_2.12-2.5.0/bin/
    
    5.3、运行kafka生产者发送消息
    $ ./kafka-console-producer.sh --broker-list localhost:9092 --topic mmr
    
    发送消息
    > {"datas":[{"channel":"","metric":"temperature","producer":"ijinus","sn":"IJA0101-00002245","time":"1543207156000","value":"80"}],"ver":"1.0"}
     
    5.4、运行kafka消费者接收消息
    $ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mmr --from-beginning
    

    二 kafka基本知识

    2.1 基本术语

    • 消息:Record。Kafka 是消息引擎嘛,这里的消息就是指 Kafka 处理的主要对象。
    • 主题:Topic。主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。
    • 分区:Partition。一个有序不变的消息序列。每个主题下可以有多个分区。
    • 消息位移:Offset。表示分区中每条消息的位置信息,是一个单调递增且不变的值。
    • 副本:Replica。Kafka 中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。副本还分为领导者副本和追随者副本,各自有不同的角色划分。副本是在分区层级下的,即每个分区可配置多个副本实现高可用。生产者:Producer。向主题发布新消息的应用程序。
    • 消费者:Consumer。从主题订阅新消息的应用程序。
    • 消费者位移:Consumer Offset。表征消费者消费进度,每个消费者都有自己的消费者位移。
    • 消费者组:Consumer Group。多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。
    • 重平衡:Rebalance。消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。

    2.2 版本

    截止到目前为止,kafka最新版本是2.7.0版本,kafka的版本号由scala的编译器版本和版本号组成,例如下面所示,2.12是编译kafka源码的scala编译器版本


    image.png image.png

    2.3 kafka只是消息引擎系统吗

    image.png

    三 kafka demo例子

    引用:

    相关文章

      网友评论

          本文标题:kafka——入门

          本文链接:https://www.haomeiwen.com/subject/teoknktx.html