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

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包,如下:
      在这里插入图片描述
    • 方式2:也可以通过查看源码,看版本信息,如下:
      在这里插入图片描述

1.2.2 下载、安装Zookeeper

  • 去官网,根据需要下载对应的版本,如下:
    在这里插入图片描述
  • 关于 Zookeeper 的安装,可以看下面的文章
    zookeeper安装与使用(win+linux).

1.3 kafka的安装

1.3.1 下载

  • 去官网下载需要的版本,官网地址:
    https://kafka.apache.org/downloads.
    在这里插入图片描述

1.3.2 解压

  • 然后解压,如下:
    tar -zxvf kafka_2.12-2.8.2.tgz
    
    在这里插入图片描述

1.3.3 修改配置文件

  • 修改配置文件 server.properties ,如下:
    在这里插入图片描述

  • 配置信息如下:
    在这里插入图片描述

    在这里插入图片描述

    # 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 &
    

    在这里插入图片描述

  • 启动成功之后,显示:
    在这里插入图片描述

  • 查看进程:

    ps -ef | grep kafka
    

    在这里插入图片描述

2.2 启动 kafka 遇到的问题

2.2.1 问题1

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

      ifconfig
      

      在这里插入图片描述

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

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

      在这里插入图片描述

  • 然后重新启动即可。
    在这里插入图片描述

2.2.2 问题2

3. 简单实用

3.1 创建topic

  • 如下:
    ./kafka-topics.sh --create --zookeeper zookeeper服务的IP:2181 --replication-factor 1 --partitions 1 --topic susu-topic
    
    在这里插入图片描述

3.2 查看已创建的topic

  • 如下:
    ./kafka-topics.sh -list --zookeeper zookeeper服务的IP:2181
    
    在这里插入图片描述

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
    
    在这里插入图片描述

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)
    
    在这里插入图片描述
  • 解决问题:
    这里我的处理是开放 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,问题就解决了,不知道啥问题,总之,重启能解决百分之九十九的问题!!!

3.4 接收消息

3.4.1 接收消息演示

  • 如下:
    ./kafka-console-consumer.sh --bootstrap-server 外网IP或内网IP:9092 --topic susu-topic --from-beginning
    
    在这里插入图片描述

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 
      
  • 具体如下:
    在这里插入图片描述

3.5 查看zk

  • 如下:
    在这里插入图片描述

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,如下:
    在这里插入图片描述

4.4 结构图

  • 如下:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/68653.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数学建模—分类模型

本讲将介绍分类模型。对于而分类模型,我们将介绍逻辑回归(logistic regression)和Fisher线性判别分析两种分类算法;对于多分类模型,我们将简单介绍Spss中的多分类线性判别分析和多分类逻辑回归的操作步骤下。 本题按水…

vue3多页面配置你一定会遇到的问题,踩坑指南

vue3实现多页面打包容易,关键是如何实现本地的开发和调试?我们接下来解决如下几个问题: 1 多页面项目的项目结构是怎样的? --public--src---App.vue---main.js---page1. ---App.vue---main.js----home.vue----list.vue---page2.…

HttpRunner搭建接口自动化测试项目

前言:前面写过一篇PytestAllure接口自动化测试框架搭建的博客,这篇博客学习另外一款优秀的开源的接口自动化测试框架:HttpRunner,本博客主要学习如何搭建基于HttpRunner的接口自动化测试项目 PytestAllure接口自动化测试框架搭建…

编写一个指令(v-focus2end)使输入框文本在聚焦时焦点在文本最后一个位置

项目反馈输入框内容比较多时候,让鼠标光标在最后一个位置,心想什么奇葩需求,后面试了一下,是有点影响体验,于是就有了下面的效果,我目前的项目都是若依的架子,用的是vue2版本。vue3的朋友想要使…

“智农”数字孪生一体化管控平台

数字乡村可视化|数字乡村|农业可视化|高标准农田|数字农业大脑|大棚可视化|数字农业|数字乡村|数字农业研学|数字大棚|智慧大棚|农业数字孪生|智慧农业|数字农业温室|智农|智慧农业可视化|智能温室|智慧温室|农业大数据|农业产业园可视化|植物工厂|可视化农业监控系统|设施农业…

判断时间段是否重叠

1、逻辑公式 时间段1&#xff1a;start1&#xff08;开始时间&#xff09;&#xff0c;end1&#xff08;结束时间&#xff09; 时间段2&#xff1a;start2&#xff08;开始时间&#xff09;&#xff0c;end2&#xff08;结束时间&#xff09; 重叠条件为&#xff1a;start1 <…

I 2C 接口控制器理论讲解

IIC系列文章&#xff1a; (1) I 2C 接口控制器理论讲解 (2) I2C接口控制设计与实现 文章目录 一、 IIC协议二、IIC协议解析1.特点2.规定3.器件地址4.存储地址 三、IIC写时序1.单字节写时序2.连续写时序&#xff08;页写时序&#xff09; 四、IIC读时序1.单字节读时序2.连续读时…

鸿蒙边缘计算网关正式开售

IDO-IPC3528鸿蒙边缘计算网关基于RK3568研发设计&#xff0c;采用22nm先进工艺制程&#xff0c;四核A55 CPU&#xff0c;主频高达2.0GHz&#xff0c;支持高达8GB高速LPDDR4&#xff0c;1T算力NPU&#xff0c;4K H.265/H264硬解码&#xff1b;视频输出接口HDMI2.0&#xff0c;双…

62.不同路径

一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff1f; 动态规…

竞赛项目 深度学习手势识别算法实现 - opencv python

文章目录 1 前言2 项目背景3 任务描述4 环境搭配5 项目实现5.1 准备数据5.2 构建网络5.3 开始训练5.4 模型评估 6 识别效果7 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习手势识别算法实现 - opencv python 该项目较为新颖…

.netcore grpc客户端流方法详解

一、客户端流式处理概述 客户端流式处理方法在该方法没有接收消息的情况下启动。 requestStream 参数用于从客户端读取消息。 返回响应消息时&#xff0c;客户端流式处理调用完成。客户端可以发送多个消息流到服务端&#xff0c;当所有客户端消息流发送结束&#xff0c;调用请…

APP备案明明是好事,为啥有些人反对呢?

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; APP和小程序备案&#xff0c; 这事在网上闹的沸沸扬扬&#xff0c;明明是好事&#xff0c;可为啥那么多人反对呢?而且最近出现了好多阴阳怪气的声音。 话说从2005年3月起&#xff0c;国内所有的网…

AI抢饭碗!多部由Midjourney+Runway,制作的电影火了!丨IDCF

ChatGPT等生成式AI正在重塑各个行业的工作模式&#xff0c;尤其是影视领域。最近&#xff0c;多部由MidjourneyRunway生成式AI制作的电影预告片在社交平台上火了。 一部名叫的《芭本海默》的电影从对白、场景、人物、切镜完全由生成式AI制作完成并受到了用户的好评。该片结合了…

IDEA简单拷贝一份新项目记录

IDEA简单拷贝项目记录 拷贝后改项目名&#xff0c;然后iml 配置文件改项目名&#xff0c;然后 .idea 中的compiler.xml 里面的name标签改项目名。 就可以了

3D Web轻量化引擎HOOPS Communicator如何实现对BIM桌面端的支持?

HOOPS Communicator是一款简单而强大的工业级高性能3D Web轻量化渲染开发包&#xff0c;其主要应用于Web领域&#xff0c;主要加载其专有的SCS、SC、SCZ格式文件&#xff1b;HOOPS还拥有另一个桌面端开发包HOOPS Visualize&#xff0c;主要加载HSF、HMF轻量化格式文件。两者虽然…

PyTorch深度学习实战(10)——过拟合及其解决方法

PyTorch深度学习实战&#xff08;10&#xff09;——过拟合及其解决方法 0. 前言1. 过拟合基本概念2. 添加 Dropout 解决过拟合3. 使用正则化解决过拟合3.1 L1 正则化3.2 L2 正则化 4. 学习率衰减小结系列链接 0. 前言 过拟合 (Overfitting) 是指在机器学习中&#xff0c;模型…

putty使用记录

在官网下载并安装putty 一、SSH 二、FTP open 192.168.1.118 put -r C:\Users\Administrator\Desktop\test /opt/lanren312/test # 上传&#xff08;文件夹&#xff09; get -r /opt/lanren312/test C:\Users\Administrator\Desktop\test2 # 下载&#xff08;文件夹&#xff…

边缘计算框架 Baetyl v2.4.3 正式发布

导读Baetyl v2.4.3 版本已经发布&#xff0c;对 v2.3.0 版本的部分功能进行了升级优化。公告称&#xff0c;这些新功能继续遵循云原生理念&#xff0c;构建了一个开放、安全、可扩展、可控制的智能边缘计算平台。 Baetyl 项目由百度发起&#xff0c;基于百度天工 AIoT 智能边缘…

【问题解决】Git命令行常见error及其解决方法

以下是我一段时间没有使用xshell&#xff0c;然后用git命令行遇到的一些系列错误和他们的解决方法 遇到了这个报错&#xff1a; fatal: Not a git repository (or any of the parent directories): .git 我查阅一些博客和资料&#xff0c;可以解决的方式&#xff1a; git in…

jQuery基础

目录 基础语法 选择器 层次选择器 属性选择器 基本过滤选择器 可见性过滤选择器 官网下载地址 两种包区别&#xff1a; $(document).ready()与window.onload类似&#xff0c;但也有区别。 基础语法 $(selector).action() 选择器 同html选择器等。 基本选择器包括标签选择器…