上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

kafka 3.x 学习笔记

guduadmin14小时前

kafka 3.x 学习笔记

在 kafka 2.8.0 版本之前,安装使用 kafka 需要配套安装 zookeeper,但在 2.8.0 版本之后,不再需要安装 zookeeper,本次学习笔记采用的 kafka 版本为 3.0.0。

文章目录

    • kafka 3.x 学习笔记
      • 一、kafka 定义
        • 1 什么是 kafka?
        • 2 消息队列
        • 3 消息队列应用场景
        • 4 消息队列的两种模式
        • 5 kafka 基础架构
        • 二、Centos 7 安装 kafka
        • 三、kafka 命令操作

          一、kafka 定义

          1 什么是 kafka?
          • 传统定义:kafka 是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。

            • 发布/订阅:消息的发布者不会将消息发给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息。
            • kafka 是一个开源的分布式事件流平台,被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。

              2 消息队列

              市面上常见的消息队列产品主要有 kafka、ActiveMQ、RabbitMQ、RocketMQ 等。在大数据领域主要采用 kafka 作为消息队列,在 java web开发中主要采用 ActiveMQ、RabbitMQ、RoketMQ。

              3 消息队列应用场景
              • 缓冲/消峰:尤其是特定环境下大量的并发请求,后端接口不能在短时间承受这些大量的接口,因此采用消息队列做缓冲处理。

                kafka 3.x 学习笔记,第1张


              • 异步解耦:举例一个通俗易懂的案例:现在的很多平台都提供了借钱的入口,比如美团,我猜测美团后台的逻辑大致应该是这样的:

                • 1、首先用户提交个人信息;

                • 2、美团后端接收到用户信息后,进行借款额度判断:

                  比如调用法院官网,查看此人是不是老赖;

                  调用银行的征信系统,查看此人征信是否良好等等;

                  调用政府相关部门官网,查看此人是否有房产车产等等。

                  调用完毕后,得出一个初始的可款额度。

                • 3、将用户存入借款用户表;

                • 4、调用第三方短信服务,向用户发送借款额度的通知短信;

                • 5、美团 app 向用户展示可借款金额,然后向用户确认是否借款,如借款则向用户银行卡转账。

                  举例的这个小案例,只是本人的猜测,如果这些步骤采用同步的方式设计的话,显然很不友好,采用异步不仅能解耦,也能加快后端服务的响应速度。


                  4 消息队列的两种模式
                  • 点对点模式:消费者主动拉取数据,消息收到后清楚消息。
                  • 发布/订阅模式:可以有多个 topic 主题,消费者获取自己对应的 topic,消费者消费数据之后,不删除数据,并且消费者之间相互独立。

                    5 kafka 基础架构

                    kafka 3.x 学习笔记,在这里插入图片描述,第2张

                    但是对于每个 topic,数据量太大的时候为提高吞吐量,可以将 topic 进行分而治之:

                    kafka 3.x 学习笔记,在这里插入图片描述,第3张


                    二、Centos 7 安装 kafka

                    kafka 官方地址:http://kafka.apache.org/downloads.html

                    kafka 3.x 学习笔记,在这里插入图片描述,第4张

                    1 在官网下载安装包后上传至服务器,进行解压安装:

                    tar -zxvf kafka_2.12-3.0.0.tgz
                    

                    2 把 kafka_2.12-3.0.0 重命名:kafka

                    mv kafka_2.12-3.0.0 kafka
                    

                    kafka 3.x 学习笔记,在这里插入图片描述,第5张

                    3 启动 kafka

                    bin/kafka-server-start.sh -daemon config/server.properties
                    // 查看是否启动成功
                    jps 
                    

                    kafka 3.x 学习笔记,在这里插入图片描述,第6张


                    三、kafka 命令操作

                    • 操作 topic 相关命令

                      1 查看 topic 相关命令

                      bin/kafka-topics.sh
                      

                      2 常用命令

                      参数描述
                      –bootstrap-server 连接的 Kafka Broker 主机名称和端口号
                      –topic 操作的 topic 名称
                      –create创建主题
                      –delete删除主题
                      –alter修改主题
                      –list查看所有主题
                      –describe查看主题详细描述
                      –partitions 设置分区数
                      –replication-factor设置分区副本
                      –config String:name=value更新系统默认的配置

                      在使用命令之前,先搭建hadoop的集群环境,这里我就在我的另一台腾讯云服务器上安装hadoop。

                      hadoop 下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz

                      这里我下载的是3.1.3的版本。

                      3 另一台服务器安装hadoop

                      // 我的默认安装路径为: /usr/local/src/
                      tar -zxvf hadoop-3.1.3.tar.gz
                      

                      4 配置hadoop的环境变量

                      此处踩坑记录:千万不能直接在/etc/profile文件里配置 hadoop,会导致服务器其他指令全部失效。百度了一番网上的建议是自建一个文件进行配置:vim /etc/profile.d/my_env.sh,在该文件中进行 hadoop 的环境配置即可。

                      vim /etc/profile.d/my_env.sh
                      // hadoop环境变量
                      export HADOOP_HOME=/usr/local/src/hadoop-3.1.3
                      export PATH=${HADOOP_HOME}/bin
                      export PATH=${HADOOP_HOME}/sbin
                      

                      kafka 3.x 学习笔记,在这里插入图片描述,第7张

                      修改过后保存退出,记得加载配置:

                      source /etc/profile
                      

网友评论

搜索
最新文章
热门文章
热门标签