lvs负载均衡集群
目录
一、集群:
1、集群的目的:
2、集群的类型:
3、集群的可靠性指标:
4、设计集群时需要考虑的原则:
二、lvs集群:
1、lvs集群中的术语:
2、lvs访问的大致流程:
三、lvs的负载均衡方式:NAT、DR、TUN
1、NAT模式
2、DR模式:直接路由模式
3、TUN模式:隧道协议
4、如何设置lvs:
1、lvs中的调度算法(负载均衡算法)
三、LVS-NAT模式配置:
四、LSV-DR模式配置:
一、集群:
是未解决某个特定的问题将多个计算机组合起来之后形成一个单系统
如:nginx四层和七层+动静分离
1、集群的目的:
为了解决系统的性能瓶颈
垂直扩展:向上扩展,增加单个机器的性能。也就是升级硬件。硬件升级是有瓶颈的,水平扩展应运而生
水平扩展:向外扩展,增加设备,并行的运行多个服务,通过网络和算法
2、集群的类型:
负载均衡集群:LB:Load Blance多个主机组成,每个主机只承担一部分访问请求。靠负载均衡算法来实现
高可用集群:HA:High Availablity 避免SPOF(Single point of failuer)单点故障。系统中有一部分组件出现故障,可以保障整个系统继续运行。
高可用涉及主和从
现在都是复杂均衡+高可用,也就是既能满足主从也能满足同步还能实现负载均衡
HPC:High-Proformance computing 高性能集群,快速转发,快速响应
3、集群的可靠性指标:
MTBF:系统在正常运行时间无故障的平均时间,一般用小时或者天数来表示。MTBF值越高,系统的可靠性越高,出现故障的概率也越小。
MTTR:系统从发生故障到恢复正常运行的平均时间,一般用小时或者天数表示。MTTR值越小,系统恢复故障的能力越强
A:系统的可靠性指标,A值越高越好
如何计算:A=MTBF/(MTBF+MTTR)
停机时间:
计划内停机:指的是预定时间内的维护或者检修时间。是自定义的
计划外停机:运维人员关注的就是计划外。
4、设计集群时需要考虑的原则:
- 可扩展性:集群要有随时可以添加或者删除设备的能力。动态的扩缩容
- 可靠性:集群中如果有节点发生故障,可以快速检测并且自动切换。
- 负载均衡:合理和分配负载,避免单个节点过载,影响整体的性能
- 可维护性:能够方便的进行配置、部署、维护、监控。降低成本
以上原则跟运维有关系
- 安全性:防止恶意的攻击以及数据泄密,数据丢失。
- 易用性:相关的工作人员,可以方便的进入集群,能够快速的开发、部署、测试等等
二、lvs集群:
lvs:linux virtual server 是一个部署在linux系统上,通过内核层面实现负载均衡的软件。
主要作用:多个后端服务器组成一个高可用,高性能,复杂均衡的高性能集群。通过负载均衡的算法将客户端请求发送到后端服务器
阿里的SLB就是基于lvs+keepalived实现的
1、lvs集群中的术语:
vs(virtual server):lvs服务的逻辑名称,也就是外部访问lvs集群时提供的一个虚拟IP地址和端口号
ds(director server):lvs集群中的主服务器,也叫调度器,使整个lvs集群的核心,接受客户端的请求转发到后端RS
rs(real server):lvs的后端的真实服务器的IP地址,接收到了ds的请求之后,返回响应结果。
cip(client ip):客户端的IP地址
vip(virtual ip):对外提供访问的统一的虚拟IP地址
dip(director IP):调度器在ivs内部使用的IP地址。用于和真实服务器进行通信
rip:后端真实服务器的IP地址
2、lvs访问的大致流程:
- 客户端访问都是访问VIP
- 由调度器ds接收到请求,根据调度算法选择好后端服务器(rs),请求发送给rs
- rs真实服务器处理请求并将响应发送到ds
- ds调度器把rs的响应包装成自己的响应,发送到客户端
这种模式下,客户端既不知道请求的真实服务器,也不知道响应的服务器是谁
三、lvs的负载均衡方式:NAT、DR、TUN
其中NAT和DR是最常用的方式
1、NAT模式
NAT模式是最常用的lvs负载均衡方式之一
NAT是地址转换的方式
实验图:
NAT模式:
- 在调度器上配置网卡,一个指内,一个指外
- 配置一个可以和公网进行通信的vip(12.0.0.1)
- 配置转发策略,如果访问vip就会把请求的数据转发到rs真实服务器
请求的格式:报文。调度器会修改请求的目标IP地址和端口
- rs处理完请求之后响应客户端,先到调度器,调度器再进行地址转换,把内网地址转换成公网地址,响应给用户
192.168.233.30:80-------调度器---------nat转换----------------12.0.0.10:80-------------客户端
数据请求进入调度器做的是请求报文中IP地址的修改
数据响应进入调度器,根据NAT配置进行地址转换
进入请求报文,出去地址转换
调度器的内网IP地址和rs真实服务器的IP地址要在同一网段。否则要利用路由器转发
NAT:对于客户端来说请求地址始终不变,客户端不需要修改任何配置。换发由调度器通过算法完成,后端服务器只管接收响应,也不需要修改任何配置。
缺点:可能会造成性能损失和单点故障
2、DR模式:直接路由模式
请求由调度器完成,但是响应客户端由rs真是服务器直接响应,不需要通过调度器。
好处是性能高:而且可以配置代理地址vip的高可用。不存在单点故障。
3、TUN模式:隧道协议
使用隧道协议把请求转发到后端服务器,需要在后端服务器配置隧道协议
4、如何设置lvs:
ipvsadm工具:管理ipvs内核模块的命令行工具,可用于配置和管理lvs集群。
ipvsadm
-A:添加虚拟服务器
-D:删除整个虚拟服务器
-s(小写):指定负载调度算法
1、lvs中的调度算法(负载均衡算法)
静态调度(固定调度):
rr:默认算法轮询
wrr:加权轮询
dh:目的地址hash
sh:原地址hash
dh和sh都是根据IP地址查找静态hash表,获取需要的真实的rs地址
动态调度:
lc:最小连接数调度
wlc:加权最小连接数调度
权重高的转发的就多,为了避免性能瓶颈,在跟上最小连接数分配,可以把请求往连接数量较小的服务器继续转发
lblc:基于地址的最小连接数调度
将来自同一个目的地址的请求分配给rs,如果这台服务器尚未满负荷,就会把请求分配给连接数最小的rs,而且在下一次转发时,优先考虑这rs
-a:添加真实服务器
-d:删除真实服务器
-t:指定vip地址的端口号
-r:指定rid(real server ip)的端口号
-m:表示使用的是nat模式
-g;表示使用DR模式
-i:表示使用隧道模式
-w:设置真实服务器的权重
-p 60:设定链接保持的时间,单位秒(默认不保持需要指定)
-ln:以数字以及列表的形式查看lvs的配置信息
三、LVS-NAT模式配置:
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done
nat模式的部署方式:
负载调度器:配置双网卡:20.0.0.21(内网) 12.0.0.1(ens36)
两台后端web真实服务器:20.0.0.22 20.0.0.23
一台NFS共享服务器:20.0.0.3010
客户端:20.0.0.40
先关防火墙:
配置共享服务:20.0.0.30
安装软件
yum install nfs-utils rpcbind -y #安装nfs服务
vim /etc/exports
#设置共享策略
exportfs -rv #发布服务
启动NFS网络共享时注意:要先启动网络再启动服务
配置两个后端服务器RS1、RS2:
先检查目录是否共享:
showmount -e NFS主机ip
安装nginx
之后挂载nginx访问目录
两个共享目录分别挂载后端服务器访问目录:
打开两边nginx服务
用curl访问一下看是否正常
配置RS1、RS2网卡
将DNS解析注释
内网网关要和调度器的内网网卡ens33的IP地址一样
(路由器离终端最近的点,IP地址配置网段的网关)
配置完网卡之后一定要重启网卡
systemctl restart network
调度器配置:
配置网卡:
网卡的IP地址要和距离最近的网段的网关一样
先ifconfig查看新建的网卡名(ens36),再去网卡配置
cd /etc/sysconfig/network-scripts
cp -a ifcfg-ens33 ifcfg-ens36
重启网卡
配置防火墙策略:
先安装iptables和ipvsadm:
yum -y install iptables-services.x86_64 iptables
yum -y install ipvsadm*
用iptables配置nat转换:
iptables -nL -t nat
#查看策略
iptables -t nat -F
#清空nat策略
iptables -t nat -A POSTROUTING -s 192.168.233.0/24 -o ens36 -j SNAT --to 12.0.0.1
#添加策略
iptables -nL -t nat
#查看策略
modprobe ip_vs
cat /proc/net/ip_vs
#加载内核模块
配置ipvsadm:
ipvsadm -A -t 12.0.0.1:80 -s rr
#指定IP地址 外网的入口 -s rr 轮询
ipvsadm -a -t 12.0.0.1:80 -r 192.168.233.61:80 -m
#先指定虚拟服务器再添加真实服务器地址,-r:真实服务器地址 -m指定nat模式,两个都配置
ipvsadm -a -t 12.0.0.1:80 -r 192.168.233.62:80 -m
ipvsadm -ln
#查看配置情况
ipvsadm-save >/etc/sysconfig/ipvsadm
#配置完 保存配置文件
systemctl restart ipvsadm.service
#重启服务
vim /etc/sysctl.conf打开转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#开启服务器的转发功能
sysctl -p刷新
打开新的机器,做客户端
重启网卡
虚拟机浏览器访问
12.0.0.1
四、LSV-DR模式配置:
lvs-DR模式:是最常用的lvs负载方式,DR DIRECT ROUTING 直接路由模式
负载均衡器lvs调度器,只负责请求和转发到后端的真实服务器,但是响应结果由后端服务器直接转发给客户端,不需要经过调度器处理,减轻lvs调度器的负担,提高性能和稳定性
lvs-DR模式的工作原理:
是根据mac地址进行转发数据,是二层转发
- 客户端发送请求到vip虚拟ip地址
- lvs调度器接受请求之后根据算法选择一台后端的真实服务器,把请求转发到后端RS,请求报文的目录mac地址修改成后端真实服务器的mac地址,然后转发
- 后端真实服务器接受请求,处理完成之后,由于后端服务器直接把响应结果转发给客户端,响应报文中的目的的mac地址修改成客户端的mac地址。直接把响应报文转发到客户端
- 调度器,后端真实服务器都有vip地址,调度器的地址和后端真实服务器的地址在同一网段。
vip的作用:代理
- 标识后端的真实服务器
- 保证调度器和后端服务器之间的通信,保证请求可以正确的转发到后端服务器
- 实现高可用
DR模式的特点:
- 调度器的ip和真实服务器的ip必须在同一个物理网络(网段)中
- 真实服务器的IP地址可以是私有地址,也可以是公网地址,如果配置公网就可以通过互联网直接访问RIP
- 调度器只作为访问入口,但是不作为网关。要把服务器的转发功能关闭。
- 后端真实服务器的网关也不能指向调度器,真实服务器的数据包不允许经过调度器。
- 后端真实服务器上,基于LO回环接口配置vip的IP地址
ARP协议:(网络层协议)将ip地址解析为mac地址。
ARP请求:主机A和主机B
ARP核心:解决局域网内部的通信。IP地址和mac地址之间的映射
DR模式的调度器和后端服务器都在一个网段中,通过ARP请求实现局域网内部通信
问题一:
由于调度器和后端服务器都有相同的vip地址,导致响应冲突,ARP通信紊乱。
vip100和RIP 20会冲突,不知道响应哪个
解决方案:
要对后端真实服务器进行处理,真实服务器不响应针对vip的ARP请求
vip地址使用LO的虚拟地址:arp_ignore=1
后端真实服务器只响应目的ip为本地ip,也就是RIP,后端服务器的真实IP地址。ens33网卡提供的地址。
问题二:
返回报文使用的源地址还是vip地址100,调度器也是vip地址100。怎么把响应返回到客户端不经过调度器呢?
解决方案:
要对后端真实服务器做一个内核参数的优化:arp_announce=2 系统不使用ip数据包的源地址来设置ARP的请求,而是用真实的物理网卡地址。
发送:12.0.0.10(cip)----20.0.0.100(vip)---20.0.0.20(RIP)
返回:20.0.0.20(RIP)----12.0.0.10(cip)
实验过程:
如何实现DR模式的负载均衡:
四台:
vip虚拟地址:20.0.0.100
调度器:20.0.0.22
后端服务器web集群:
web集群1:20.0.0.21
web集群:20.0.0.23
nfs机器:20.0.0.30
客户端:随机选择
先关闭防火墙
调度器:
现在调度器上加载ipvs内核:
安装ipvsadm
创建虚拟网卡:
ifconfig ens33:0 20.0.0.100/24
vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p
调度器的内核优化
net.ipv4.ip_forward = 0
#关闭服务器作为网关的转发功能
net.ipv4.conf.all.send_redirects = 0
#控制是否发送ICMP的重定向消息,禁止重定向
net.ipv4.conf.default.send_redirects = 0
#禁止默认网络接口,也就是调度器网卡,发送icmp重定向消息
net.ipv4.conf.ens33.send_redirects = 0
#指明网卡设备,ens33不发送重定向消息
ipvsadm:
nfs服务端共享服务:
systemctl start rpcbind
systemctl start nfs
exportfs -rv
去两个后端服务器:
安装nginx
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo ifcfg-lo:0
DEVICE=lo:0
IPADDR=20.0.0.100
NETMASK=255.255.255.255
ONBOOT=yes
重启网卡
ifup lo:0
route add -host 20.0.0.100 dev lo:0
把vip的地址绑定到lo:0,作为整个lvs的vip地址。标识,告诉调度器进行转发请求的IP地址寻址
vim /etc/sysctl.conf
只有请求到后端服务器真实ip的响应才会接收,其他的一律不接受
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
~
net.ipv4.conf.lo.arp_ignore = 1
#设置lo接口忽略来自任何接口的ARP请求
net.ipv4.conf.lo.arp_announce = 2
设置lo接口仅会响应本地的IP地址,其他的接口ARP请求,全部忽略
net.ipv4.conf.all.arp_ignore = 1
所有接口忽略来自任何接口的ARP请求
net.ipv4.conf.all.arp_announce = 2
# 所有接口仅会响应本地的IP地址的ARP请求,其他的接口的ARP请求全部忽略
sysctl -p
重启
两边后端服务器操作相同,nginx都要启动
用客户机访问vip20.0.0.100
DR模式:vip只做表示代理和转发请求到后端服务器还有高可用,其他一律没用
总结:
DR模式核心:响应客户端是后端真实服务器来完成,不需要经过调度器二次处理
vip地址:调度器和后端服务器都要有vip地址。
作用:
1、暴露访问地址
2、调度器转发请求的标识
3、调度器和后端服务器之间进行通信
4、基于DR模式的高可用
只有以上四个作用,其他所有的请求和响应都被禁用。
lvs的负载均衡算法设置:
ipvsadm -In
IP Virtual Server version 1.2.1(size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.233.100:80 wrr
-> 192.168.233.20:80 Route 1 1 0 0
-> 192.168.233.30:80 Route 1 1 0 0
TCP 192.168.233.100:80 wrr
表示VIP地址,wrr 负载均衡器的调度算法
-> 192.168.233.20:80 Route 1 0 0
-> 192.168.233.30:80 Route 1 0 0
指向后端的真实服务器
Forward: 负载均衡算法和负载均衡方式。route 就是DR模式
ACtiveConn:活跃连接,表示调度器正在处理的活动连接数,表示这些链接正在进行传输数据或者正在进行交互。
InActConn:表示当前处于非活动状态的连接数。已建立连接但是目前没有数据传输,第二个
可以修改VIP的调度算法:
ipvsadm -E -t 192.168.233.100:80 -s wrr
修改策略的轮询权重:
ipvsadm -e -t 192.168.233.100:80 -r 192.168.233,30:80 -w
换负载均衡算法:
修改完之后要先保存再重启
总结题:
1、lvs负载均衡的工作方式:
三种:NAT、DR、TUN最常用的就是DR模式
NAT模式:
优点:配置简单
缺点:性能瓶颈
真实服务器的要求:所有都可以作为真实服务器
后端服务器支持的网络模式:私网
能配置的真实服务器的数量:最多10-20台,超过性能下降
DR模式:
优点:性能最好(响应不走调度器直接到客户端)
缺点:调度服务器和后端真实服务器不能夸网段
真实服务器的要求:NO ARP(请求只能到真实服务器)
后端服务器支持网络:公网、私网
真实服务器数量:100台
TUN 公司不用(需要VPN隧道,要钱)
2、lvs调度器中常用的算法(负载均衡策略):
rr
wrr
dh
sh
wlc
lc
lblc
相关文章:

lvs负载均衡集群
目录 一、集群: 1、集群的目的: 2、集群的类型: 3、集群的可靠性指标: 4、设计集群时需要考虑的原则: 二、lvs集群: 1、lvs集群中的术语: 2、lvs访问的大致流程: 三、lvs的…...

MySQL---表的增查改删(CRUD基础)
文章目录 什么是CRUD?新增(Create)单行数据 全列插入多行数据 指定列插入 查询(Retrieve)全列查询指定列查询查询字段为表达式起别名查询去重查询排序查询条件查询分页查询 修改(Update)删除&…...

听GPT 讲Rust源代码--library/std(2)
File: rust/library/std/src/sys_common/wtf8.rs 在Rust源代码中,rust/library/std/src/sys_common/wtf8.rs这个文件的作用是实现了UTF-8编码和宽字符编码之间的转换,以及提供了一些处理和操作UTF-8编码的工具函数。 下面对这几个结构体进行一一介绍&…...

力扣第1005题 K 次取反后最大化的数组和 c++ 贪心 双思维
题目 1005. K 次取反后最大化的数组和 简单 相关标签 贪心 数组 排序 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以…...

Swoole 4.8版本的安装
1、从github拉取安装包 Release v4.8.13 swoole/swoole-src GitHub 2、解压压缩包 tar -zxvf ./v4.8.13.tar.gzcd ./swoole-src-4.8.13 3、执行安装命令 phpize && \ ./configure && \ make && sudo make install 4、检查swoole模块是否安装完成…...

ChatGPT和Copilot协助Vue火速搭建博客网站
AI 对于开发人员的核心价值 网上会看到很多 AI 的应用介绍或者教程 使用 AI 聊天,咨询问题 —— 代替搜索引擎使用 AI 写各种的电商文案(淘宝、小红书)使用 AI 做一个聊天机器人 —— 这最多算猎奇、业余爱好、或者搞个套壳产品来收费 以上…...

javaEE -8(9000字详解网络编程)
一:网络编程基础 1.1 网络资源 所谓的网络资源,其实就是在网络中可以获取的各种数据资源,而所有的网络资源,都是通过网络编程来进行数据传输的。 用户在浏览器中,打开在线视频网站,如优酷看视频ÿ…...

FPGA从入门到精通(二十)SignalTapII
这一篇将介绍SignalTapII。 之前的工程我们是做仿真,设置激励,观察输出波形去判断代码没有问题,但事实上我们真实的需求是综合后的代码下载到FPGA芯片中能够符合预期。 其中可能出现问题的原因有: 1、我们是写testbench设置激励…...

RHCE---shell 条件测试
文章目录 目录 文章目录 前言 一.条件测试 概述: 文件测试 整数测试: 总结 前言 当我们完成某一命令的编写时,除了观察输出的内容,我们又如何得知命令是否执行成功呢? 这里,我们需要用到条件测试 一.条…...

Linux下QT打开文件选择对话框时,程序报错退出
系统:Ubuntu QString fileName QFileDialog::getOpenFileName(this, "open", "./", "document Files (*.pdf)"); 调用该语句弹出文件对话框时,程序崩溃退出 错误提示: (Widget:5272): Gtk-WARNING **: 14…...
PyTorch中的intrusive_ptr
PyTorch中的intrusive_ptr 前言 intrusive_ptr與unique_ptr,shared_ptr等一樣,都是smart pointer。但是intrusive_ptr比較特別,它所指向的物件類型必須繼承自intrusive_ptr_target,而intrusive_ptr_target必須實現引用計數相關的…...

webrtc-stream编译报错记录
磁盘空间不足错误 错误信息 677.2 fatal: cannot create directory at blink/web_tests/external/wpt: No space left on device说明:这个错误是由于本地在配置docker资源时所给磁盘空间太小导致,直接根据镜像大小合理分配资源大小即可 pushd和popd执…...

什么是Docker CLI
Docker CLI(命令行界面)是一个工具,允许用户通过命令行或终端与Docker进行交互。Docker是一个开源平台,用于开发、运送和运行应用程序。Docker使用容器化技术来打包应用程序及其依赖项,以确保在不同环境中的一致性和隔…...

Java项目_家庭记账(简易版)
文章目录 简介代码实现 简介 该项目主要用来练习,Java的变量,运算符,分支结构和循环结构的知识点。 程序界面如下: 登记收入 登记支出 收支明细 程序退出 代码实现 package project;import java.util.Scanner;import sta…...

vscode json文件添加注释报错
在vscode中创建json文件,想要注释一波时,发现报了个错:Comments are not permitted in JSON. (521),意思是JSON中不允许注释 以下为解决方法: 在vscode的右下角中找到这个,点击 在出现的弹窗中输入json wit…...
vue3移动端嵌入pdf的两种办法
1.使用embed嵌入 好处:简单,代码量少,功能齐全 缺点:有固定样式,难以修改,不可定制 <embed class"embedPdf" :src"pdfurl" type"application/pdf">2.使用vue-pdf-e…...

中文编程开发语言工具系统化教程初级1上线
中文编程系统化教程初级1 学习编程捷径:(不论是正在学习编程的大学生,还是IT人士或者是编程爱好者,在学习编程的过程中用正确的学习方法 可以达到事半功倍的效果。对于初学者,可以通过下面的方法学习编程,…...

零售数据分析模板分享(通用型)
零售数据来源多,数据量大,导致数据的清洗整理工作量大,由于零售的特殊性,其指标计算组合更是多变,进一步导致了零售数据分析工作量激增,往往很难及时分析数据,发现问题。那怎么办?可…...

Spring Cloud之微服务
目录 微服务 微服务架构 微服务架构与单体架构 特点 框架 总结 SpringCloud 常用组件 与SpringBoot关系 版本 微服务 微服务:从字面上理解即:微小的服务; 微小:微服务体积小,复杂度低,一个微服…...
Linux命令(104)之date
linux命令之date 1.date介绍 linux命令date用来设置和显示系统日期和时间 2.date用法 date [参数] date参数 参数说明-s修改并设置时间-d可以显示以前和未来的时间%H小时%M分钟%S秒%X等价于%H %M %S%F显示当前所有时间属性%Y完整年份%m月%d日%A星期的全称 3.实例 3.1.当前…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
WEB3全栈开发——面试专业技能点P7前端与链上集成
一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...

云原生安全实战:API网关Envoy的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关 作为微服务架构的统一入口,负责路由转发、安全控制、流量管理等核心功能。 2. Envoy 由Lyft开源的高性能云原生…...