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

Kafka 01——Kafka的安装及简单入门使用

guduadmin220小时前

Kafka 01——Kafka的安装及简单入门使用

  • 1. 下载安装
    • 1.1 JDK的安装
    • 1.2 Zookeeper的安装
      • 1.2.1 关于Zookeeper版本的选择
      • 1.2.2 下载、安装Zookeeper
      • 1.3 kafka的安装
        • 1.3.1 下载
        • 1.3.2 解压
        • 1.3.3 修改配置文件
        • 2. 启动 kafka
          • 2.1 Kafka启动
          • 2.2 启动 kafka 遇到的问题
            • 2.2.1 问题1
            • 2.2.2 问题2
            • 3. 简单实用
              • 3.1 创建topic
              • 3.2 查看已创建的topic
              • 3.3 发送消息
                • 3.3.1 发送消息命令
                • 3.3.2 遇到的问题
                  • 3.3.2.1 问题1
                  • 3.3.2.2 问题2
                  • 3.4 接收消息
                    • 3.4.1 接收消息演示
                    • 3.4.2 接收消息的相关知识小点
                    • 3.5 查看zk
                    • 4. 总结
                      • 4.1 Kafka 基本概念
                      • 4.2 常见命令
                        • 4.2.1 常用的基础命令
                        • 4.2.2 简单实用命令
                        • 4.3 数据日志
                        • 4.4 结构图

                          1. 下载安装

                          1.1 JDK的安装

                          • 因为kafka本身的开发语言是Scala,而Scala是基于 jdk 开发的,所以要先安装jdk,关于 jdk 的安装,可以看下面的两篇文章,如下:
                            • Linux安装JDK1.8.
                            • linux下普通用户(非root用户)安装JDK8.

                              1.2 Zookeeper的安装

                              1.2.1 关于Zookeeper版本的选择

                              • 可以根据下面下载的 kafaka 的版本选择对应的Zookeeper版本,怎么选择,如下:
                                • 方式1:直接看Kafka里libs下的jar包,如下:

                                  Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第1张

                                • 方式2:也可以通过查看源码,看版本信息,如下:

                                  Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第2张

                                  1.2.2 下载、安装Zookeeper

                                  • 去官网,根据需要下载对应的版本,如下:

                                    Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第3张

                                  • 关于 Zookeeper 的安装,可以看下面的文章

                                    zookeeper安装与使用(win+linux).

                                    1.3 kafka的安装

                                    1.3.1 下载

                                    • 去官网下载需要的版本,官网地址:

                                      https://kafka.apache.org/downloads.

                                      Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第4张

                                      1.3.2 解压

                                      • 然后解压,如下:
                                        tar -zxvf kafka_2.12-2.8.2.tgz
                                        
                                        Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第5张

                                        1.3.3 修改配置文件

                                        • 修改配置文件 server.properties ,如下:

                                          Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第6张

                                        • 配置信息如下:

                                          Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第7张

                                          Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第8张

                                          # The id of the broker. This must be set to a unique integer for each broker.
                                          broker.id=0
                                          listeners=PLAINTEXT://内网IP:9092
                                          advertised.listeners=PLAINTEXT://公网IP:9092
                                          zookeeper.connect=zk的公网IP:2181
                                          # …… 其他配置,先默认即可
                                          

                                          2. 启动 kafka

                                          2.1 Kafka启动

                                          • 启动命令如下:

                                            ./kafka-server-start.sh ../config/server.properties &
                                            

                                            Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第9张

                                          • 启动成功之后,显示:

                                            Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第10张

                                          • 查看进程:

                                            ps -ef | grep kafka
                                            

                                            Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第11张

                                            2.2 启动 kafka 遇到的问题

                                            2.2.1 问题1

                                            • 问题描述,如下:
                                              org.apache.kafka.common.KafkaException: Socket server failed to bind to XXX:9092: Cannot assign requested address.
                                              
                                              Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第12张
                                            • 问题原因
                                              • 服务器的公网IP(对外暴露的ip)和真实ip(ifconfig显示的ip)可能只是映射关系,用户访问对外ip时,OpenStack会转发到对应的真实ip实现访问。
                                              • 但此时如果配置文件中 server.properties 配置中的是listeners=PLAINTEXT://公网IP:9092 的时候无法启动,因为socket无法绑定监听,就会报上面的错误。
                                              • 解决方法也很简单,将上面的配置,改成listeners=PLAINTEXT://内网IP:9092即可,其他使用时正常使用公网ip即可,跟真实的内网ip就没有关系了。
                                              • 解决问题
                                                • 先查看内网IP

                                                  ifconfig
                                                  

                                                  Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第13张

                                                • 再修改配置文件 server.properties,如下:

                                                  listeners=PLAINTEXT://内网IP:9092
                                                  advertised.listeners=PLAINTEXT://公网IP:9092
                                                  

                                                  Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第14张

                                                • 然后重新启动即可。

                                                  Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第15张

                                                  2.2.2 问题2

                                                  3. 简单实用

                                                  3.1 创建topic

                                                  • 如下:
                                                    ./kafka-topics.sh --create --zookeeper zookeeper服务的IP:2181 --replication-factor 1 --partitions 1 --topic susu-topic
                                                    
                                                    Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第16张

                                                    3.2 查看已创建的topic

                                                    • 如下:
                                                      ./kafka-topics.sh -list --zookeeper zookeeper服务的IP:2181
                                                      
                                                      Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第17张

                                                      3.3 发送消息

                                                      3.3.1 发送消息命令

                                                      • 如下:
                                                        ./kafka-console-producer.sh --broker-list 内网IP:9092 --topic susu-topic
                                                        或者
                                                        ./kafka-console-producer.sh --broker-list 公网IP:9092 --topic susu-topic
                                                        
                                                        Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第18张

                                                        3.3.2 遇到的问题

                                                        3.3.2.1 问题1
                                                        • 问题描述如下:
                                                          [2023-08-10 09:01:57,758] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
                                                          [2023-08-10 09:02:15,979] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
                                                          [2023-08-10 09:02:49,538] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
                                                          [2023-08-10 09:02:50,562] ERROR Error when sending message to topic susu-topic with key: null, value: 4 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
                                                          org.apache.kafka.common.errors.TimeoutException: Topic susu-topic not present in metadata after 60000 ms.
                                                          >[2023-08-10 09:03:18,069] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
                                                          [2023-08-10 09:03:47,001] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
                                                          
                                                          Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第19张
                                                        • 解决问题:

                                                          这里我的处理是开放 9092 端口,关于开放端口和防火墙问题,可以看下面的文章:

                                                          linux下查看防火墙状态、关闭防火墙、开放关闭端口等.

                                                          3.3.2.2 问题2
                                                          • 开放端口之后的问题,如下,问题描述:
                                                             WARN [Producer clientId=console-producer] Connection to node -1 (/XXX:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
                                                            
                                                            Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第20张
                                                          • 解决问题:

                                                            这里就是重启服务,重启kafka,问题就解决了,不知道啥问题,总之,重启能解决百分之九十九的问题!!!

                                                            3.4 接收消息

                                                            3.4.1 接收消息演示

                                                            • 如下:
                                                              ./kafka-console-consumer.sh --bootstrap-server 外网IP或内网IP:9092 --topic susu-topic --from-beginning
                                                              
                                                              Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第21张

                                                              3.4.2 接收消息的相关知识小点

                                                              • 如下:
                                                                • 消费方式1: 从头开始消费
                                                                  ./kafka-console-consumer.sh --bootstrap-server IP:9092 --topic susu-topic --from-beginning
                                                                  
                                                                • 消费方式2: 从最后一条消息的偏移量+1开始消费
                                                                  ./kafka-console-consumer.sh --bootstrap-server IP:9092 --topic susu-topic 
                                                                  
                                                                • 具体如下:

                                                                  Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第22张

                                                                  3.5 查看zk

                                                                  • 如下:

                                                                    Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第23张

                                                                    4. 总结

                                                                    4.1 Kafka 基本概念

                                                                    • Kafka 是一种消息队列,主要用来处理大量数据状态下的消息队列,一般用来做日志的处理。既然是消息队列,那么 Kafka 也就拥有消息队列的相应的特性了。
                                                                    • Kafka 像其他MQ一样,也有自己的基础架构,主要存在生产者 Producer、Kafka 集群 Broker、消费者Consumer、注册消息Zookeeper.
                                                                      • Topic:主题,一个虚拟的概念,由1到多个 Partitions 组成,可以理解为一个队列,生产者和消费者都是面向一个Topic。
                                                                      • Partition:分区,实际消息存储单位。为了实现扩展性,一个非常大的Topic可以分布到多个Broker上,一个Topic可以分为多个 Partition,每个 Partition 是一个有序的队列(分区有序,不能保证全局有序)。
                                                                      • Producer:消息生产者,向 Kafka 中发布消息的角色。
                                                                      • Consumer:消息消费者,从 Kafka 中拉取消息消费的客户端。
                                                                      • Broker:经纪人,一台 Kafka 服务器就是一个 Broker,一个集群由多个 Broker 组成,一个 Broker 可以容纳多个 Topic。

                                                                        4.2 常见命令

                                                                        4.2.1 常用的基础命令

                                                                        • 启动命令:
                                                                          ./kafka-server-start.sh ../config/server.properties &
                                                                          
                                                                        • 停止命令:
                                                                           ./kafka-server-stop.sh
                                                                          
                                                                        • 地点

                                                                          4.2.2 简单实用命令

                                                                          • 创建topic
                                                                            # 创建topic
                                                                            ./kafka-topics.sh --create --zookeeper zookeeper的IP:2181 --replication-factor 1 --partitions 1 --topic susu-topic
                                                                            
                                                                          • 查看已经创建的topic信息
                                                                            # 查看已经创建的topic信息
                                                                            ./kafka-topics.sh -list --zookeeper zookeeper的IP:2181
                                                                            
                                                                          • 发送消息
                                                                            ./kafka-console-producer.sh --broker-list 内网IP:9092 --topic susu-topic
                                                                            或者
                                                                            ./kafka-console-producer.sh --broker-list 公网IP:9092 --topic susu-topic
                                                                            
                                                                          • 接收消息
                                                                            ./kafka-console-consumer.sh --bootstrap-server 外网IP或内网IP:9092 --topic susu-topic --from-beginning
                                                                            

                                                                            4.3 数据日志

                                                                            • 查看数据日志,存放路径,看配置文件里配的哪个路径 log.dirs,如下:

                                                                              Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第24张

                                                                              4.4 结构图

                                                                              • 如下:

                                                                                Kafka 01——Kafka的安装及简单入门使用,在这里插入图片描述,第25张

网友评论

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