Kafka学习记录

news2024/11/26 22:26:32

阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。希望互相进步谢谢!!

文章目录

  • 阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。希望互相进步谢谢!!
  • 1、前言
  • 2、kafka是什么
  • 3、简单使用
  • 3、Docker按照kafka
  • 4、总结

提示:以下是本篇文章正文内容

1、前言

visio 2016
在这里插入图片描述


2、kafka是什么

在这里插入图片描述

  • Producer:即生产者,消息的产生者,是消息的入口;
  • Consumer:消费者,即消息的消费方,是消息的出口;
  • Broker:中间代理,即一个broker就是一个server。每个kafka集群内的broker都有一个不重复的编号,如图中的broker-0、broker-1等……
  • Topic(主题):可以理解为消息的分类,kafka的数据就保存在topic。在每个broker上都可以创建多个topic,也可以类比为电脑的文件夹;
  • Event(事件):也称为记录、消息(Message),可以类比为文件。示例事件包括支付交易、来自手机的地理位置更新、运输订单、来自物联网设备或医疗设备的传感器测量等等。这些事件被组织并存储在 Topic 中;
  • Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器) 上,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列。partition 中的每条消息都会被分配一个有序的 id(offset)。kafka 只保证按一个 partition 中的顺序将消息发给 consumer ,不保证一个 topic 的整体(多个 partition 间)的顺序;
  • Consumer Group(CG):尚硅谷讲的,因为Topic被分为了Partition,同样Consumer一样可以分组。各个consumer可以组成一个组,同一个消费者组的消费者可以消费同一个topic的不同分区(partition)的数据,这也是为了提高kafka的吞吐量!
  • Offset:kafka的存储文件都是按照offset.kafka来命名,用offset做名字的好处是方便查找。例如你想找位于2049的位置,只要找到2048.kafka的文件即可。当然the first offset就是00000000000.kafka。

参考连接《kafka基本原理详解》,里面有具体的流程。

下面是我自己看了很多资料理解的:

kafka 有很多 broker (因为一个 boker 相当于一个云服务器,即一台大型电脑),每个 broker 里有很多topic(相当于一个电脑有很多文件夹),而有时可能一个 topic 太大,一个 broker 无法存下一个 topic ,因此分为topicA-partition0 、 topicA-partition1 存在 broker1 、 broker2上(相当于分布式存储了,将一个大文件夹拆成很多小文件夹,当然为了防范风险,还有存其很多副本),而每一个 partition 下存的是event(相当于文件夹存的文档)。

理解尚硅谷讲的为什么kafka是这样的架构。


3、简单使用

官网教程中,要理解每个参数的作用,尤其注意这里.sh是脚本文件,包含一系列命令,然后在 shell 被执行,例如-producer.sh可以理解为开发人员为了用户操作方便,把用户需要在命令行执行的所有命令(这里为创建生产者的命令),写到了producer.sh文件里,而用户只用执行此.sh文件,即可等价于执行很多复杂的命令,方便了用户。

官网那些.sh文件全是脚本文件,不同脚本文件集合了不同的命令行命令,一个脚本文件实现一个功能,用户执行这个.sh文件就能实现很多命令,方便很多。


3、Docker按照kafka

  1. 下载镜像

    1.1 下载安装zookeeper镜像

    	sudo docker pull wurstmeister/zookeeper 
    

    1.2 下载安装kafka镜像

    	sudo docker pull wurstmeister/kafka
    

    1.3 验证是否安装成功

    	sudo docker images
    

    如下图所示为安装成功在这里插入图片描述

  2. 启动
    注意这里启动顺序有先后,需要先启动zookeeper。

    2.1 启动zookeeper

    sudo docker run -d --name zookeeper \
    -p 2181:2181 \
    -e TZ="Asia/Shanghai" \
    -t wurstmeister/zookeeper 
    # --restart always    # 不要此行参数!!!
    

    参数介绍:

    • --name:容器名字;
    • -p:端口号(映射到宿主机的端口:zookeeper端口号);
    • -t: 为容器重新分配一个伪输入终端;
    • -e : 设置环境变量:
      TZ="Asia/Shanghai"为设置了时区,因为虚拟机创建时就设置的为此时区,相当于同步docker内部时间和虚拟机时间。
    • restart always:能够使我们在重启docker时,自动启动相关容器。例如使用 Docker 运行 Nginx。Nginx 作为目前常用的 web 服务器,我们肯定更希望看到它在因停电、主机重启等意外事件中尝试自动恢复。但网上有的博客docker安装kafka时,加了此参数,有的没有加,这里可以不用加。Docker 容器的重启策略一般用于生产环境,开发环境和实验环境可以忽略。若之后需要实现“重启docker时,自动启动相关容器”,添加参数即可,具体自行百度。

    如下图所示,代表创建成功,返回了容器对应的id
    在这里插入图片描述

    2.2 启动kafka

    sudo docker run -dit --name kafka \
    -p 9092:9092 \
    -e KAFKA_BROKER_ID=0 \
    -e KAFKA_ZOOKEEPER_CONNECT=localhost:2181 \
    -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 \
    -e KAFKA_LISTENERS=PLAINTEXT://localhost:9092 \
    -e TZ="Asia/Shanghai" \
    -t wurstmeister/kafka
    

    参数介绍:

    • --name:容器名字;
    • -p:端口号(映射到宿主机的端口:zookeeper端口号);
    • -e : 设置环境变量:
      KAFKA_BROKER_ID: 该ID是集群的唯一标识,因为在kafka集群中,每个kafka都有一个BROKER_ID来区分自己;
      KAFKA_ZOOKEEPER_CONNECT==<这里换成你的zookeeper地址和端口>: 配置zookeeper管理kafka的路径;
      KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://<这里换成你的kafka地址和端口>: kafka发布到zookeeper供客户端使用的服务地址;
      KAFKA_LISTENERS: 配置kafka的监听端口,代表允许使用PLAINTEXT侦听器。网上有的教程将-e KAFKA_LISTENERS=PLAINTEXT://localhost:9092 换成了 -e ALLOW_PLAINTEXT_LISTENER=yes 是一个意思。
    • -v /etc/localtime:/etc/localtime: 将本地时间映射到容器中,即容器时间同步虚拟机的时间;
    • -t: 为容器重新分配一个伪输入终端。

    同样如下图所示代表创建成功,返回了容器对应的id
    在这里插入图片描述
    查看kafka日志记录:
    sudo docker logs kafka
    kafka就是容器名字
    在这里插入图片描述

具体解决方案https://blog.csdn.net/weixin_55008454/article/details/126629905

其实就是防火墙没关闭
sudo docker ufw status 查看状态

sudo docker ufw disable 关闭防火墙

sudo docker ufw status 成功关闭

在这里插入图片描述

[2023-04-14 23:38:42,458] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:42,461] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:43,566] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:43,566] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:44,668] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:44,668] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:45,770] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:45,770] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:46,873] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:46,874] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:47,976] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:47,976] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:49,083] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:49,084] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:50,187] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:50,187] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:51,289] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:51,289] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:52,390] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:52,391] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:53,492] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:53,493] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:54,594] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:54,594] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:55,696] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:55,696] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:56,798] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:56,799] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:57,901] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:57,902] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:59,004] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:38:59,005] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:39:00,116] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:39:00,117] INFO Socket error occurred: localhost/127.0.0.1:2181: Connection refused (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:39:00,453] INFO [ZooKeeperClient Kafka server] Closing. (kafka.zookeeper.ZooKeeperClient)
[2023-04-14 23:39:01,222] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:39:01,327] INFO Session: 0x0 closed (org.apache.zookeeper.ZooKeeper)
[2023-04-14 23:39:01,327] INFO EventThread shut down for session: 0x0 (org.apache.zookeeper.ClientCnxn)
[2023-04-14 23:39:01,328] INFO [ZooKeeperClient Kafka server] Closed. (kafka.zookeeper.ZooKeeperClient)
[2023-04-14 23:39:01,330] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING
at kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:271)
at kafka.zookeeper.ZooKeeperClient.(ZooKeeperClient.scala:125)
at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1948)
at kafka.server.KafkaServer.createZkClient 1 ( K a f k a S e r v e r . s c a l a : 431 ) a t k a f k a . s e r v e r . K a f k a S e r v e r . i n i t Z k C l i e n t ( K a f k a S e r v e r . s c a l a : 456 ) a t k a f k a . s e r v e r . K a f k a S e r v e r . s t a r t u p ( K a f k a S e r v e r . s c a l a : 191 ) a t k a f k a . K a f k a 1(KafkaServer.scala:431) at kafka.server.KafkaServer.initZkClient(KafkaServer.scala:456) at kafka.server.KafkaServer.startup(KafkaServer.scala:191) at kafka.Kafka 1(KafkaServer.scala:431)atkafka.server.KafkaServer.initZkClient(KafkaServer.scala:456)atkafka.server.KafkaServer.startup(KafkaServer.scala:191)atkafka.Kafka.main(Kafka.scala:109)
at kafka.Kafka.main(Kafka.scala)
[2023-04-14 23:39:01,332] INFO shutting down (kafka.server.KafkaServer)
[2023-04-14 23:39:01,340] INFO App info kafka.server for 0 unregistered (org.apache.kafka.common.utils.AppInfoParser)
[2023-04-14 23:39:01,341] INFO shut down completed (kafka.server.KafkaServer)
[2023-04-14 23:39:01,341] ERROR Exiting Kafka. (kafka.Kafka$)
[2023-04-14 23:39:01,344] INFO shutting down (kafka.server.KafkaServer)

1、切换root: su root + 输入root密码

注意:Ubuntu下su root认证失败
原因:第一次使用,自己输的是用户的密码,但用户的密码不等于root密码,因此使用 sudo passwd root设置root的密码

2、查找文件 find / -iname “server.properties”。
find / -iname “selinux/config”

找到/config/server.properties 对应的文件
在这里插入图片描述
3、修改该文件,注意切换到config目录
vim ./server.properties

Kafka linux 采坑 | 启动报错: Timed out waiting for connection while in state: CONNECTING 改时间

  1. 测试发消息

4、总结


码字不易,谢谢点赞!!!
码字不易,谢谢点赞!!!
码字不易,谢谢点赞!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“商量”翻车了?网友质疑搬运C站

在ChatGPT大热的当下&#xff0c;各大互联网和AI大厂陆续开始推出国内版本的大模型产品了&#xff0c;最近发布的有&#xff1a;商汤版ChatGPT发布千亿参数大模型&#xff1a;商量&#xff01;第一个真正实现智能涌现的国产大语言模型&#xff0c;内测即将开启阿里版 ChatGPT 突…

ICLR 2023 | 基于视觉语言预训练模型的医疗图像小样本学习及零样本推理性能研究

近两年&#xff0c;视觉语言模型 (VLM) 逐渐兴起&#xff0c;并在小样本学习 (Few-shot Learning) 和零样本推理 (Zero-shot Inference) 上取得了令人注目的成果。那么这些在自然图像上取得成功的大规模预训练视觉语言模型&#xff0c;是否能成功应用到医疗领域呢&#xff1f;抱…

springboot项目中的mysql用国产数据库达梦替换的相关说明

一、 用“DM管理工具”的“管理用户”创建你需要用户&#xff0c;也是达梦的模式。 用户的权限问题可以直接角色授权&#xff0c;方便一些。 二、借用达梦的“DM数据迁移工具”做数据库的表内容转移。 1. 新建工程、新建迁移 编辑mysql的数据库源 编辑达梦的目的端数据库 选择之…

力扣119杨辉三角 II:代码实现 + 方法总结(数学规律法 记忆法/备忘录)

文章目录第一部分&#xff1a;题目第二部分&#xff1a;解法①-数学规律法2.1 规律分析2.2 代码实现2.3 需要思考第三部分&#xff1a;解法②-记忆法&#xff08;备忘录&#xff09;第四部分&#xff1a;对比总结第一部分&#xff1a;题目 &#x1f3e0; 链接&#xff1a;119.…

工业路由器IO远程控制使用说明(智联物联)

工业路由器IO控制是指路由系统已开发支持对用户DI&#xff08;数字输入&#xff09;/DO&#xff08;数字输出&#xff09;/Relay&#xff08;继电器&#xff09;类型的设备控制操作&#xff0c;目前各支持1路设备类型。 IO控制目前支持2种方式进行控制操作&#xff0c;即通过工…

C/C++每日一练(20230417)

目录 1. 字母异位词分组 &#x1f31f;&#x1f31f; 2. 计算右侧小于当前元素的个数 &#x1f31f;&#x1f31f;&#x1f31f; 3. 加一 &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 J…

【JavaScript】3.JavaScript预解析

JavaScript 预解析 1. 变量预解析 和 函数预解析 js引擎运行js 分为两步&#xff1a; 预解析 代码执行 预解析 js引擎会把js 里面所有的 var 还有 function 提升到当前作用域的最前面代码执行 按照代码书写的顺序从上往下执行 预解析分为 变量预解析&#xff08;变量提升&…

0101壳-手写springboot-springboot系列

文章目录1 前言1 创建我们自己的pringboot模块1.1 引入相关依赖1.1 启动类注解1.2 启动类2 测试模块3 启动测试结语1 前言 springboot有以下作用&#xff1a; 简化配置&#xff1a;Spring Boot提供了一组预定义的自动配置选项&#xff0c;可以快速地配置应用程序&#xff0c;…

2023年虚拟数字人行业研究报告

第一章 行业概况 虚拟数字人指存在于非物理世界中&#xff0c;由计算机图形学、图形渲染、动作捕捉、深度学习、语音合成等计算机手段创造及使用&#xff0c;并具有多种人类特征&#xff08;外貌特征、人类表演能力、人类交互能力等&#xff09;的综合产物。虚拟人可分为服务型…

[Python工匠]输出① 变量与注释

变量&#xff08;variable&#xff09;是用来从内存找到某个东西的标记 #去掉s两边的空格&#xff0c;再处理 value process(s.strip()) s " hello World " value1 len(s) value2 len(s.strip())print(value1) print(value2) #用户输入可能会有空格&#x…

【云原生】k8s集群命令行工具kubectl之应用部署命令详解

kubectl应用部署命令详解一、准备工作1.1、Replication Controller1.2、Deployment1.3、DaemonSet1.4、查看创建的svc和pod1.5、kubectl 命令自动补全设置二、应用部署命令2.1、diff2.2、apply2.3、replace2.4、rollout2.4.1、history2.4.2、pause2.4.3、resume2.4.4、restart2…

Ubuntu20.04安装matlab2022b

Ubuntu20.04安装matlab2022b 1.系统要求 Ubuntu 22.04 LTSUbuntu 20.04 LTSUbuntu 18.04 LTSDebian 11Debian 10Red Hat Enterprise Linux 9Red Hat Enterprise Linux 8 (minimum 8.4)Red Hat Enterprise Linux 7 (minimum 7.9)SUSE Linux Enterprise Desktop 15SUSE Linux E…

【攻城狮计划】Renesas RA2E1 详细介绍

&#x1f6a9;WRITE IN FRONT&#x1f6a9; &#x1f50e;介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四"&#x1f50e;&#x1f3c5;荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2022博客之星TOP10…

A40i使用笔记:QT使用alsa采集音频pcm信息

一、前言 目的是实现一种效果&#xff0c;就是在音频识别时&#xff0c;能够实时显示当前人员说话的声音幅度&#xff0c;通过波形曲线的形式显示出来。如下效果&#xff08;非我实现&#xff09; 还可以实现在实时采集的同时&#xff0c;将需要的数据保存成指定格式文件&…

状态设计模式(State Pattern)[论点:概念、相关角色、图示、示例代码、框架中的运用、适用场景]

文章目录概念组成角色相关图示代码示例框架中的应用适用场景概念 状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;用于解决对象在不同状态下的行为问题。它允许一个对象在其内部状态改变时改变它的行为。状态模式主要包含三个部分&#xff1a;…

Day924.自动化测试 -系统重构实战

自动化测试 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于自动化测试的内容。 自动化测试是一个很容易产生“争议”的话题&#xff0c;也经常会有一些很有意思的问题。 自动化测试不是应该由测试同学来编写吗&#xff0c;开发是不是没有必要学吧&#xff1f;之前…

圆角升级啦,来手把手一起实现自定义ViewGroup的各种圆角与背景

作者&#xff1a;newki 定制圆角与背景的自定义ViewGroup实现 前言 目前线上的一些第三方圆角容器大部分都只支持四周固定圆角&#xff0c;我们一些使用场景只需要顶部圆角&#xff0c;或者底部圆角&#xff0c;或者一个角圆角。 &#xff08;话说为什么我们的UI这么喜欢各种…

webpack plugin源码解析(四) HashedModuleIdsPlugin

文章目录作用涉及 webpack API获取chunkGraph获取当前编译过程中被使用过的 module id&#xff1a;compilation.usedModuleIds获取当前编译过程中所有的模块对象&#xff1a;compilation.modules判断 module 是否需要生成 id&#xff1a;module.needId获取指定module 的 module…

新品首发丨计讯物联智慧灯杆TG473-A6-5“滴水不进”,严苛环境下稳定运行无压力

近年来&#xff0c;智慧灯杆产业快速发展&#xff0c;已广泛应用于智慧城市、智慧交通、智慧园区、智慧停车等细分场景&#xff0c;提质增效、节本降耗的作用突显。值得注意的是&#xff0c;不同的场景有着不同的环境条件&#xff0c;如高低温、潮湿、沙尘等&#xff0c;对智慧…

Nginx学习(9)—— 负载均衡模块

文章目录Nginx负载均衡模块负载均衡配置指令钩子初始化配置初始化请求peer.get和peer.free回调函数小结Nginx负载均衡模块 负载均衡模块用于从”upstream”指令定义的后端主机列表中选取一台主机。nginx先使用负载均衡模块找到一台主机&#xff0c;再使用upstream模块实现与这…