LVS的DR模式是否依赖内核的数据包转发
LVS的DR模式是否依赖内核的数据包转发
是的,LVS(Linux Virtual Server) 的 DR(Direct Routing)模式 依赖于 内核的数据包转发。在 DR 模式下,数据包的转发行为是由 Linux 内核进行的,因此正确配置内核的 IP 转发功能 是非常重要的。
DR 模式的工作原理
在 LVS DR 模式 中,负载均衡器并不直接转发数据包到目标服务器。相反,它通过修改目标地址(通常是 Destination NAT
,即 DNAT)将数据包的目标地址指向后端的真实服务器,但数据包的源地址保持不变。这意味着,当负载均衡器接收到客户端请求时,它会:
-
将目标 IP 地址修改为真实的后端服务器 IP 地址。
-
将数据包直接转发给目标服务器,但此时 数据包的源 IP 地址保持负载均衡器的地址,而不是目标服务器的地址。
-
目标服务器在发送响应数据时,会将数据包发送回负载均衡器的 IP 地址。
-
负载均衡器再将数据包转发回客户端。
内核的数据包转发
在 DR 模式下,内核需要处理数据包的转发操作,尤其是在以下方面:
-
内核必须启用 IP 转发:在负载均衡器节点上,必须启用内核的 IP 转发功能,允许数据包从一个接口转发到另一个接口。这个设置通常是通过修改
/proc/sys/net/ipv4/ip_forward
文件来完成的:echo 1 > /proc/sys/net/ipv4/ip_forward
或者在
/etc/sysctl.conf
文件中设置net.ipv4.ip_forward = 1
来启用内核的 IP 转发。 -
数据包转发:在 DR 模式下,数据包会从负载均衡器转发到真实服务器,而不改变源地址。这意味着,数据包会通过 LVS 负载均衡器 的网络接口和内核路由机制进行转发。
-
直接路由的作用:LVS 的 DR 模式依赖于 Linux 内核的路由表和数据包转发机制,确保数据包能够从负载均衡器转发到实际的后端服务器,并且后端服务器的响应可以通过负载均衡器正确返回给客户端。
配置注意事项
-
IP 转发:在 LVS DR 模式下,必须确保负载均衡器上启用了 IP 转发功能。如果没有启用,数据包无法被正确转发,导致连接失败。
-
ARP 处理:由于 DR 模式依赖于目的地地址修改,并且客户端的响应会发回到负载均衡器的 IP 地址,负载均衡器需要处理正确的 ARP 请求和响应,确保目标服务器的 MAC 地址不会被客户端直接看到。通常,负载均衡器会发送一个伪造的 ARP 响应,使得客户端认为负载均衡器是目标服务器。
-
内核配置和调优:
-
如果系统有多个网络接口,可能需要确保路由表和接口的配置正确,以便内核能够正确转发数据包。
-
可能还需要调整内核的
net.ipv4.conf.all.proxy_arp
设置,以确保 ARP 请求能被正确代理。
-
总结
LVS DR 模式确实依赖于内核的数据包转发功能,因为负载均衡器将数据包转发到后端服务器,并且目标服务器通过负载均衡器发送响应。要使 LVS DR 模式正常工作,必须启用内核的 IP 转发功能,并确保其他相关网络配置(如 ARP 代理等)正确设置。
Keepalived的VIP配置是否依赖内核数据包转发
Keepalived 的 VIP(Virtual IP)配置 一般情况下 不直接依赖于内核的数据包转发。VIP 配置的核心任务是为高可用性服务提供一个虚拟的 IP 地址,供客户端访问,而不依赖于内核的 IP 转发功能。实际上,VIP 的功能通常是由 虚拟路由 或 网络接口的 IP 地址绑定 来实现的,而不是通过数据包转发。
Keepalived 与 VIP 配置的工作原理
-
VIP 配置和管理:
-
在 Keepalived 中,VIP 是由虚拟路由器(VRRP)协议管理的。当某个节点的状态发生变化时(例如主节点故障),VIP 会自动切换到备份节点上,从而确保服务的持续可用性。
-
在主节点上,VIP 会绑定到网络接口上,客户端访问该 VIP 地址时,流量会直接发送到当前主节点。如果主节点故障,VIP 会通过 VRRP 协议切换到备份节点。
-
-
VIP 不依赖 IP 转发:
-
VIP 本质上是一个 逻辑地址,与实际的物理地址(主机的真实 IP 地址)不同。VIP 通常直接绑定到虚拟网卡或是通过 VRRP 进行切换,不需要内核的 IP 转发来实现流量的路由。
-
客户端将请求发送到 VIP,流量会被发送到当前持有该 VIP 的节点的 物理网卡,无需进行额外的转发操作。
-
-
VIP 切换与内核路由的关系:
-
当 VIP 在不同节点之间切换时,内核的路由表 会相应更新,确保流量发送到新的 VIP 所在的节点。但是,这不需要启用内核的 IP 转发。
-
例如,在 Keepalived 配置中,如果主节点故障,备份节点会通过 VRRP 获取到 VIP,并将其绑定到本地接口。此时,客户端的流量会直接到达备份节点的接口,不涉及内核转发数据包。
-
-
内核数据包转发与 VIP 之间的关系:
-
内核数据包转发(IP Forwarding) 主要用于 路由转发,即当数据包的目标地址与源地址不在同一网络时,数据包需要通过路由器或负载均衡器转发到下一跳。而在 VIP 配置中,数据包的目标地址是虚拟 IP,且通常是通过 本地接口 直接处理的。
-
因此,VIP 的配置不依赖于内核的 IP 转发,但如果 VIP 用于跨网络间的路由(例如跨多个网络或多机房的场景),则可能需要配置内核路由表来确保正确的流量转发。
-
什么时候需要内核的 IP 转发功能?
-
在一些情况下,内核的数据包转发 可能在某些网络拓扑下需要启用,特别是当涉及到 负载均衡 或 多网段通信 时。例如,在 LVS 或一些跨网络的高可用配置中,VIP 的流量可能需要经过多个路由节点进行转发,此时 IP 转发 就会涉及进来。
-
但对于标准的 Keepalived 配置(如一个节点上设置 VIP 和备份节点切换 VIP),不需要启用 IP 转发。VIP 会在本地节点之间进行切换。
总结
-
VIP 配置 本身并不直接依赖于内核的数据包转发。Keepalived 使用 VIP 实现高可用性,并通过 VRRP 协议 自动切换 VIP 到新的节点。
-
内核的 IP 转发 仅在需要跨多个网络进行路由转发时才起作用,但对于一般的 VIP 切换和本地流量处理,不需要启用 IP 转发。
HAProxy的转发策略是否依赖内核的数据包转发
HAProxy 的转发策略通常 不依赖内核的数据包转发,因为 HAProxy 主要是 四层(TCP) 和 七层(HTTP)代理,它在传递数据时通过应用层协议进行代理,而不是通过传统的路由或数据包转发机制。
然而,在某些特定的使用场景下,HAProxy 可能会与内核的数据包转发功能交互,特别是在涉及到 LVS(Linux Virtual Server) 或 某些负载均衡架构 时。
HAProxy 的工作原理
-
四层(TCP)代理:
-
在四层模式下,HAProxy 通过 IP 层直接处理 TCP 数据流,通常不依赖于内核的 IP 转发。
-
HAProxy 接收客户端的连接请求后,将请求转发到后端服务器,然后将响应数据返回给客户端。这是典型的 代理 或 负载均衡 行为,通常发生在 用户空间。
-
它的转发策略通常基于监听的端口和目标 IP,利用内核提供的套接字接口来实现通信,而不是直接通过路由或 IP 转发。
-
-
七层(HTTP)代理:
-
在七层模式下,HAProxy 处理 HTTP 请求,基于请求的 URL、头部、主机名等信息来决定将请求转发到哪个后端服务器。
-
在这个模式下,数据包会在应用层进行解析和处理,HAProxy 决定如何将请求转发到后端应用服务器,数据转发行为也是基于应用层的协议和规则,而不是通过内核的数据包转发。
-
HAProxy 与内核数据包转发的关系
-
一般情况下不依赖 IP 转发:
-
在 HAProxy 的常见使用模式下,数据包从客户端进入 HAProxy,然后由 HAProxy 转发到后端服务器,再将响应返回给客户端。这一过程中,HAProxy 只是在应用层进行数据的读取、转发和处理,内核的 IP 转发 功能并不直接参与。
-
即 HAProxy 对外提供的服务是通过 用户空间 完成的,数据包本身不需要经过内核的路由或转发,除非涉及到跨多个网络的流量转发。
-
-
内核数据包转发可能在某些架构中起作用:
-
如果 HAProxy 与 LVS 或 其他内核级负载均衡器 配合使用,可能会涉及内核的数据包转发。例如,在 LVS 的 NAT 模式 或 DR 模式 下,负载均衡器会使用内核的路由和数据包转发功能来实现对流量的转发。而 HAProxy 本身则作为 LVS 后端的一部分提供应用层的负载均衡。
-
在这种情况下,HAProxy 可能会依赖内核的数据包转发,因为流量首先由 LVS 进行路由转发,然后到达 HAProxy,再由 HAProxy 转发到后端服务器。
-
-
高级架构(例如 HAProxy + LVS):
-
如果使用 HAProxy 作为一个 前端代理,而后端则使用 LVS 或其他内核级负载均衡器,则可能会依赖内核的转发功能。特别是在 LVS 的 DR 模式 或 NAT 模式 下,数据包可能会通过内核转发到 HAProxy 进程处理。
-
总结
-
在常见的 HAProxy 使用场景中,HAProxy 不依赖内核的数据包转发。它的工作是基于应用层协议(如 HTTP 或 TCP)进行代理和负载均衡。
-
内核的数据包转发 可能只在某些特定的架构下与 HAProxy 配合使用时才需要,例如与 LVS 结合使用时,流量可能会首先通过内核的转发机制到达 HAProxy。
相关文章:
LVS的DR模式是否依赖内核的数据包转发
LVS的DR模式是否依赖内核的数据包转发 是的,LVS(Linux Virtual Server) 的 DR(Direct Routing)模式 依赖于 内核的数据包转发。在 DR 模式下,数据包的转发行为是由 Linux 内核进行的,因此正确配…...
沿着数组的指定轴对每行(列)应用一个函数np.apply_along_axis
【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 沿着数组的指定轴 对每行(列)应用一个函数 np.apply_along_axis [太阳]选择题 根据题目代码,执行的结果是? import numpy as np array np.array([[1, 2, 3],…...
BEPUphysicsint定点数3D物理引擎使用
原文:BEPUphysicsint定点数3D物理引擎使用 - 哔哩哔哩 上一节給大家介绍了BEPUphysicsint的一些基本的情况,这节课我们来介绍它的基本使用,本节主要从以下5个方面来介绍: (1) 创建一个物理世界Space,并开启模拟迭代; (2) 添加一个物理物体…...
LinuxUDP编程
由于UDP是无连接、尽力传输的,所以Server端绑定完IP、端口号后,使用recvfrom可以阻塞等待客户端的数据,而且Client端通过sendto发送的数据包直接发送到互联网(也是基于IP、端口号)这种操作是不担保Server端是否收到的&…...
Elasticsearch vs 向量数据库:寻找最佳混合检索方案
图片来自Shutterstock上的Bakhtiar Zein 多年来,以Elasticsearch为代表的基于全文检索的搜索方案,一直是搜索和推荐引擎等信息检索系统的默认选择。但传统的全文搜索只能提供基于关键字匹配的精确结果,例如找到包含特殊名词“Python3.9”的文…...
Android显示系统(07)- OpenGL ES - 纹理Texture
Android显示系统(02)- OpenGL ES - 概述 Android显示系统(03)- OpenGL ES - GLSurfaceView的使用 Android显示系统(04)- OpenGL ES - Shader绘制三角形 Android显示系统(05)- OpenGL…...
C#加速Bitmap存图
如果希望大幅提高图像保存速度,特别是在处理非常大的图像时,可以尝试以下更直接、更高效的方法: 1. 避免使用 Bitmap 类的 Save 方法 Bitmap.Save 方法的速度受限于 GDI 库的操作,尤其是对于非常大的图像,它可能会经历…...
打通Vue3+Flask(python3)+Mysql-实现简单数据交互
一、需要准备的工具 下载python3,Vscode,pycharm(这里用的社区版),phpstudy_pro,Node.js(建议下载长期支持版本,版本不宜过低,比如18,20),Vue.js…...
PT8M2102 触控型 8Bit MCU
1 产品概述 ● PT8M2102 是一款基于 RISC 内核的8位 MTP 单片机,内部集成了电容式触摸感应模块、TIMER,PWM、LVR、LVD、WDT等外设,其主要用作触摸按键开关,广泛适用于触控调光、电子玩具、消费电子、家用电器等领域,具…...
【PyQt5教程 一】Qt Designer 安装及其使用方法说明,附程序源码
目录 一、PyQt5介绍: (1)PyQt简介: (2)PyQt API: (3)支持的环境: (4)安装: (5)配置环境变量…...
Spark on Yarn安装配置,大数据技能竞赛(容器环境)
Spark on Yarn模式,即把Spark作为一个客户端,将作业提交给Yarn服务,由于在生产环境中,很多时候都要与Hadoop使用同一个集群,因此采用Yarn来管理资源调度,可以有效提高资源利用率。 环境说明: 服…...
★ 数据结构 ★ 排序
Ciallo~(∠・ω< )⌒☆ ~ 今天,我将和大家一起学习数据结构中的各种排序~ ❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️ 澄岚主页:椎名澄嵐-CSDN博客 数据结构专栏:https://blog.csdn.net/2302_80328146/categ…...
数据结构 (26)图的遍历
前言 数据结构中的图遍历是指从图中的任一顶点出发,按照某种方法访问图中的所有顶点,且每个顶点只访问一次。 一、遍历方法 遍历主要有两种方法:深度优先搜索(DFS)和广度优先搜索(BFS)。 1.深度…...
用vue框架写一个时钟的页面
你可以使用Vue框架来创建一个简单的时钟页面。首先,你需要在HTML文件中引入Vue框架的CDN: <script src"https://cdn.jsdelivr.net/npm/vue"></script>然后,创建一个包含时钟功能的Vue实例: <div id&qu…...
【Android】View的工作流程——measure
1.View的工作流程入口 1.1DecorView被加载到Window中 看到这里你对Activity的构成有一定的了解,每个 Activity 都有一个与之关联的 Window 对象,而 DecorView 是这个 Window 的根视图。当DecorView被创建以及加载资源的时候,此时它的内容还…...
day35—蓝桥杯2024年第16届校赛模拟第二期-T4(最小花费)
【问题描述】 小蓝有一个整数,初始值为 1 ,他可以花费一些代价对这个整数进行变换。 小蓝可以花费 1 的代价将整数增加 1 。 小蓝可以花费 3 的代价将整数增加一个值,这个值是整数的数位中最大的那个(1 到 9)。 小蓝可…...
Java 中 List 接口的学习笔记
1. 什么是 List? 在 Java 中,List 是一个接口,属于 Java Collections Framework。它表示一个有序的集合,可以包含重复元素。List 接口允许通过索引访问元素,提供了多种实现方式,如 ArrayList 和 LinkedLis…...
朗新科技集团如何用云消息队列 RocketMQ 版“快、准、狠”破解业务难题?
作者:邹星宇、刘尧 朗新科技集团:让数字化的世界更美好 朗新科技集团股份有限公司是领先的能源科技企业,长期深耕电力能源领域,通过新一代数字化、人工智能、物联网、电力电子技术等新质生产力,服务城市、产业、生活中…...
hive hms和hs2的sql执行日志分析
HMS日志: 2024-12-02 15:39:20,811 INFO org.apache.hadoop.hive.metastore.HiveMetaStore: [pool-8-thread-114]: 114: source:10.11.17.999 get_all_databases 2024-12-02 15:39:20,812 INFO org.apache.hadoop.hive.metastore.HiveMetaStore.audit: [pool-8-thre…...
Mybatis-plus 多租户插件
前言 本篇主要分析Mybatis-plus 多租户插件,然后根据多租户插件在延伸到其他场景 案例 Mybatis-plus官网对多租户插件已有详细讲解,这里就不在附上使用案例。 源码分析 MybatisPlus官方是由TenantLineInnerInterceptor这个拦截器进行多租户功能处理…...
浅谈新能源汽车感应钥匙一键启动的步骤和特点
随着汽车智能化技术的发展,无钥匙启动系统还可以与其他智能系统进行集成,如智能车载系统、远程控制系统等。这使得车主可以通过智能手机等智能设备远程控制车辆的启动、解锁、上锁等操作,进一步提升了使用的便捷性和智能化水平。新能源汽车…...
012 路由信息协议RIP
路由信息协议RIP 作为度量(Metric)来衡量到达目的网络的距离 RIP是一种基于距离矢量D-V(Distance-Vector)算法的协议,它使用跳数(Hop Count)作为度量(Metric)来衡量到达目的网络的距离。 默认情况下,路由器到与它直接相连网络的跳数为0,因此…...
008.精读《Apache Paimon Docs - Table w/o PK》
文章目录 1. 引言2. 基本概念2.1 定义2.2 使用场景 3. 流式处理3.1 自动小文件合并3.2 流式查询 4. 数据更新4.1 查询4.2 更新4.3 分桶附加表 5 总结 1. 引言 通过本文,上篇我们了解了Apache Paimon 主键表,本期我们将继续学习附加表(Append…...
在 Windows WSL 上部署 Ollama 和大语言模型:从镜像冗余问题看 Docker 最佳实践20241208
🛠️ 在 Windows WSL 上部署 Ollama 和大语言模型:从镜像冗余问题看 Docker 最佳实践 ⭐ 引言 随着大语言模型(LLM)和人工智能技术的迅猛发展,开发者们越来越多地尝试在本地环境中部署模型进行实验。 但部署过程中常…...
微信小程序uni-app+vue3实现局部上下拉刷新和scroll-view动态高度计算
微信小程序uni-appvue3实现局部上下拉刷新和scroll-view动态高度计算 前言 在uni-appvue3项目开发中,经常需要实现列表的局部上下拉刷新功能。由于网上相关教程较少且比较零散,本文将详细介绍如何使用scroll-view组件实现这一功能,包括动态高度计算、下拉刷新、上拉加载等完整…...
网络原理——HTTPS
一、什么是HTTPS 1.1 HTTPS的概念 HTTPS 也是⼀个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层(即HTTP SSL/TLS,SSL、TLS也是一个应用层协议,专门负责加密) HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输…...
数据结构之四:堆和二叉树
堆的实现:SData/Heap/heap.c Hera_Yc/bit_C_学习 - 码云 - 开源中国 树 树的概念 树:是一个非线性数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。 把它叫做树是因为它看起来像一棵倒挂的树,也就…...
语音识别flask接口开发
要开发一个flask语音识别接口,首先要解决语音文件在网络中的传输问题,然后选识别算法进行识别 文章目录 1、以二进制文件流方式上次语音2、网页端长连接流式上传语音文件3、语音识别接口 1、以二进制文件流方式上次语音 python服务端代码,以…...
MISRA C2012学习笔记(10)-Rules 8.15
文章目录 8.15 控制流(Control flow)Rule 15.1 不应使用 goto 语句Rule 15.2 goto 语句仅允许跳到在同一函数中声明的稍后位置的标签Rule 15.3 goto 语句引用的标签必须在 goto 语句所在代码块或包含该代码块的上级代码块中声明Rule 15.4 最多只能有一个用于终止循环语句的 bre…...
《深入浅出HTTPS》读书笔记(16):消息验证码算法分类
MAC算法有两种形式,分别是CBC-MAC算法和HMAC算法。 CBC-MAC算法从块密码算法的CBC分组模式演变而来,简单地说就是最后一个密文分组的值就是MAC值。 HMAC(Hash-based Message Authentication Code)算法使用Hash算法作为加密基元&am…...
DAY168内网对抗-基石框架篇单域架构域内应用控制成员组成用户策略信息收集环境搭建
知识点: 1、基石框架篇-单域架构-权限控制-用户和网络 2、基石框架篇-单域架构-环境搭建-准备和加入 3、基石框架篇-单域架构-信息收集-手工和工具 1、工作组(局域网) 将不同的计算机按照功能分别列入不同的工作组。想要访问某个部门的资源,只要在“…...
如何实现 3D GPR的仿真模拟
通过ai问题生成得到的。 1 模型文件-MATLAB 在gprmax中模拟3D GPR工作,可以通过编写一个MATLAB脚本来创建几何文件,并使用gprmax的输入文件(in文件)来设置模拟参数。以下是一个简单的例子程序,展示了如何创建一个3D …...
k8s 之 Deployment
(1)Deployment 作用是确保 Pod 副本数量,能够保证 Pod 数量与期望值一样,会有自恢复功能。简洁地说:具有 水平扩展 / 收缩 功能。 可能好奇的是在 kubernetes 中是谁在执行这些控制器的,它就是 kube-contr…...
现代C++ 6 声明
文章目录 C 中的冲突声明规则1. **对应声明(Corresponding Declarations)**2. **对应函数重载(Corresponding Function Overloads)**3. **对应函数模板重载(Corresponding Function Template Overloads)**4…...
Spark区分应用程序 Application、作业Job、阶段Stage、任务Task
目录 一、Spark核心概念 1、应用程序Application 2、作业Job 3、阶段Stage 4、任务Task 二、示例 一、Spark核心概念 在Apache Spark中,有几个核心概念用于描述应用程序的执行流程和组件,包括应用程序 Application、作业Job、阶段Stage、任务Task…...
【WebRTC】Android SDK使用教学
文章目录 前言PeerConnectionFactoryPeerConnection 前言 最近在学习WebRTC的时候,发现只有JavaScript的API文档,找了很久没有找到Android相关的API文档,所以通过此片文章记录下在Android应用层如何使用WebRTC 本篇文章结合:【W…...
算法-字符串-8.字符串转换整数
一、题目 二、思路解析 1.思路: 依次遍历,查看当前字符是否在规定范围内 2.常用方法: 1.trim(),去字符串的首尾空字符 ss.trim(); 2.substring(beginIndex),截断字符串,得到新的字符串是[1,s.length()-1] ss.substring(1); 3.st…...
普通算法——一维前缀和
一维前缀和 题目链接:https://www.acwing.com/problem/content/797/ 题目描述: 输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。 **什么是…...
【Elasticsearch】ES+MySQL实现迷糊搜索
1. 技术选型 使用 Elasticsearch (ES) 结合 MySQL 进行数据存储和查询,而不是直接从 MySQL 中进行查询,主要是为了弥补传统关系型数据库(如 MySQL)在处理大规模、高并发和复杂搜索查询时的性能瓶颈。具体来说,ES 与 My…...
MacOS编译webRTC源码小tip
简单记录一下,本人在编译webRTC时,碰到了一下比较烦人的问题,在MacOS终端下,搭建科学上网之后,chromium的depot_tools仓库成功拉下来了,紧接着,使用fetch以及gclient sync始终都返回curl相关的网…...
Android显示系统(05)- OpenGL ES - Shader绘制三角形(使用glsl文件)
Android显示系统(02)- OpenGL ES - 概述 Android显示系统(03)- OpenGL ES - GLSurfaceView的使用 Android显示系统(04)- OpenGL ES - Shader绘制三角形 Android显示系统(05)- OpenGL…...
深度学习小麦头检测-基于Faster-RCNN的小麦头检测——附项目源码
比赛描述 为了获得有关全世界麦田的大量准确数据,植物科学家使用“小麦头”(包含谷物的植物上的穗)的图像检测。这些图像用于估计不同品种的小麦头的密度和大小。但是,在室外野外图像中进行准确的小麦头检测可能在视觉上具有挑战性。密集的小麦植株经常重叠,并且风会使照片…...
成像报告撰写格式
成像报告撰写格式 实验人员: 实验时间: 实验地点: 实验目的: 1实验仪器 1.1相机 包括制造商,型号,面阵还是线阵,彩色还是黑白,图像尺寸,光学接口等。 1.2镜头 包…...
【数学建模】线性规划问题及Matlab求解
问题一 题目: 求解下列线性规划问题 解答: 先将题目中求最大值转化为求最小值,则有 我们就可以得到系数列向量: 我们对问题中所给出的不等式约束进行标准化则得到了 就有不等式约束条件下的变系数矩阵和常系数矩阵分别为: 等式…...
C# 事件(Event)
文章目录 前言1、 声明委托2、 声明事件3、 触发事件4、订阅和取消订阅事件5、示例展示示例一:基础的事件使用流程示例二:简单数值变化触发事件示例三:锅炉系统相关事件应用 前言 在 C# 中,事件(Event)是一…...
企业数字化转型:从爆品起步,迈向生态平台
在当今数字化浪潮席卷全球的时代,企业数字化转型已成为必然趋势。然而,这条转型之路该如何走呢? 企业数字化转型的路径设计,绝不仅仅是技术的升级换代,它需要综合考量多方面因素。一方面,要为实现战略目标做…...
Windows 安装 MySQL
1.下载 MySQL 安装包 访问:MySQL :: Download MySQL Installer选择适合的版本。推荐下载 MySQL Installer for Windows,该安装包包含所有必要的组件选择 Windows (x86, 32-bit), MSI Installer 或 Windows (x86, 64-bit), MSI Installer 2.运行安装程序…...
游戏引擎学习第37天
仓库 : https://gitee.com/mrxiao_com/2d_game 回顾目前的进展 一个简单的调试工具——位图加载器,用于加载存储在硬盘上的位图文件。这个工具将文件加载到内存中,并查看文件头部信息,确保其正确性。接着使用位图头中的偏移量来获取像素数据…...
非常简单实用的前后端分离项目-仓库管理系统(Springboot+Vue)part 4
三十三、出入库管理 Header.vue导一下,RecordController加一个 //将入库数据和原有数据相加吧//新增PostMapping("/save")public Result save(RequestBody Record record) {return recordService.save(record) ? Result.success() : Result.fail();} GoodsManage.v…...
知乎Java后台开发面试题及参考答案
请简述 TCP 的三次握手和四次挥手过程。 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 三次握手过程 首先,客户端想要建立连接,会发送一个带有 SYN(同步序列号)标志的 TCP 报文段,这个报文段中还包含一个初始序列号(ISN,Initial Sequenc…...