当前位置: 首页 > news >正文

day33-负载均衡实战

01.问题总结
1.rsync同步注意目录加/和不加/的区别
2.安装wordpress过程中禁止使用IP安装,解析成域名安装
比如安装过程 10.0.0.7--->填写数据库信息--->写入数据库中
如果安装完成后再使用www.wp.com访问,不能访问页面乱码的问题。
3.挂载wordpress挂载uploads目录 在往下一级以时间命名
[root@web01:~]#df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               459M     0  459M   0% /dev
tmpfs                  475M     0  475M   0% /dev/shm
tmpfs                  475M   31M  444M   7% /run
tmpfs                  475M     0  475M   0% /sys/fs/cgroup
/dev/mapper/klas-root   47G  4.5G   43G  10% /
tmpfs                  475M     0  475M   0% /tmp
/dev/sda1             1014M  169M  846M  17% /boot
172.16.1.31:/data/wp    47G  3.8G   44G   8% /code/wp/wp-content/uploads
4.访问域名的时候,浏览器默认将访问的http://www.wp.com ---修改成https://www.wp.com5.排查缓存问题直接使用curl命令
在web服务器做hosts解析
[root@web01:conf.d]#cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.7  www.wp.com[root@web01:conf.d]#curl www.wp.com6.导出数据库vim检查过滤一下 有没有数据信息7.会话的问题,目录权限问题
[root@web01:~]# ll /var/lib/php/session/ -d
drwxrwx--- 2 www www 279 Aug  9 08:45 /var/lib/php/session/分享搭建过程中的一些错误。
02.负载均衡:
面试题: 说一下如何实现的负载均衡
1.使用的proxy_pass模块
2.通过proxy_pass模块转发给upstream模块定义的地址池
3.使用的是默认的rr轮训算法分发到后端的服务器

负载均衡配置:

WEB01-->静态页面 www.lb.com 显示内容 web01.......
WEB02-->静态页面  www.lb.com 显示内容 web02......
lb01--->负载均衡 转发到后端两台web服务器WEB01配置静态页面
[root@web01:conf.d]#cat web01.conf
server {listen 80;server_name www.lb.com;location / {root /code;index index.html;}
}[root@web01:conf.d]#echo web01........... > /code/index.html测试语法并重启nginx
[root@web01:conf.d]#nginx -t
[root@web01:conf.d]#systemctl restart nginxhosts解析
10.0.0.7  www.lb.com浏览器测试访问
www.lb.com
浏览器测试是否显示web01......WEB02配置静态页面
a[root@web02:conf.d]#cat web02.conf
server {listen 80;server_name www.lb.com;location / {root /code;index index.html;}
}[root@web02:conf.d]#echo web02...... > /code/index.html测试语法并重启
[root@web02:conf.d]#nginx -t
[root@web02:conf.d]#systemctl restart nginxhosts解析
10.0.0.8 www.lb.com浏览器测试是否显示web02......负载均衡配置:创建/etc/nginx/proxy_params
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;[root@lb01:conf.d]#cat proxy.conf
upstream webs {server 10.0.0.7;server 10.0.0.8;
}
server {listen 80;server_name www.lb.com;location / {proxy_pass http://webs;include proxy_params;}
}语法检测并重启服务
[root@lb01:conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01:conf.d]#systemctl restart nginx修改hosts指向到10.0.0.5
10.0.0.5 www.lb.com配置wordpress和zh phpshe业务实现负载均衡
[root@lb01:conf.d]#cat proxy.conf
upstream webs {server 10.0.0.7;server 10.0.0.8;
}
server {listen 80;server_name www.lb.com;location / {proxy_pass http://webs;include proxy_params;}
}
server {listen 80;server_name www.wp.com;location / {proxy_pass http://webs;include proxy_params;}
}[root@lb01:conf.d]#vim proxy.conf
[root@lb01:conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01:conf.d]#systemctl restart nginx
03.负载均衡问题
默认Nginx负载机制,如果后端Nginx服务挂掉则不会继续访问。
如果后端是php或者数据库服务挂掉,还是会继续访问后端服务器,
会导致用户访问的时候,数据库无法进行响应,导致用户体验不好。
增加一个配置,除Nginx以外的服务挂掉,自动访问下一个web服务器[root@lb01:conf.d]#cat proxy.conf
upstream webs {server 10.0.0.7;server 10.0.0.8;
}
server {listen 80;server_name www.lb.com;location / {proxy_pass http://webs;include proxy_params;}
}
server {listen 80;server_name www.wp.com;location / {proxy_pass http://webs;include proxy_params;proxy_next_upstream error timeout http_500 http_502 http_503 http_504;# 如果用户访问的页面出现 500 502 503 504错误则自动访问下一个服务器。}
}
04.Nginx 负载均衡面试题
1.如何实现的负载均衡
2.负载均衡的调度算法
rr轮训      默认的
weight     加权轮循
ip_hash    ip哈希
url_hash   url哈希
least_conn 最少链接数rr轮询配置方式
[root@lb01:conf.d]#cat proxy.conf
upstream webs {server 10.0.0.7;server 10.0.0.8;
}加权轮询配置方式:
[root@lb01:conf.d]#cat proxy.conf
upstream webs {server 10.0.0.7 weight=5;   # 配置每次处理5次请求server 10.0.0.8;
}配置ip哈希:
[root@lb01:conf.d]#cat proxy.conf
upstream webs {ip_hash;server 10.0.0.7;server 10.0.0.8;
}面试题: 以上三种算法的区别
05.Nginx 后端服务器状态
upstream webs {server 10.0.0.30 down; # 不参与负载的调度server 10.0.0.20;server 10.0.0.10;server 10.0.0.9;server 10.0.0.8 backup; # 类似备胎 其他服务器都挂掉后,10.0.0.8才进入负载的调度
}
06.Nginx 编译安装
什么情况使用编译安装:
特点: 自定义安装位置自定义模块编译安装步骤:
1.安装依赖
[root@lb01:~]#yum install -y gcc glibc gcc-c++ pcre-devel openssl-devel patch2.下载nginx源码包(下载是和我们当前使用的对应的版本)
[root@lb01:~]#nginx -v
nginx version: nginx/1.26.1[root@lb01:~]#wget http://nginx.org/download/nginx-1.26.1.tar.gz解压代码:
[root@lb01:~]#tar xf nginx-1.26.1.tar.gz
[root@lb01:~]#ll
total 1216
drwxr-xr-x 8  502 games     158 May 29 22:30 nginx-1.26.13.下载第三方健康状态检查模块
wget https://github.com/yaoweibin/
nginx_upstream_check_module/archive/master.zip
解压代码
[root@lb01:~]#unzip master.zip
total 1396
-rw-r--r-- 1 root root   177080 Aug  9 11:19 master.zip
drwxr-xr-x 8  502 games     158 May 29 22:30 nginx-1.26.1
-rw-r--r-- 1 root root  1244738 May 29 22:30 nginx-1.26.1.tar.gz
drwxr-xr-x 6 root root     4096 Nov  6  2022 nginx_upstream_check_module-master4.打补丁
[root@lb01:~]#cd nginx-1.26.1/
patch -p1 <../nginx_upstream_check_module-master/check_1.20.1+.patch4.重新配置nginx
[root@lb01:~]#cd nginx-1.26.1/
./configure --prefix=/etc/nginx5.编译并安装
[root@lb01:nginx-1.26.1]#make && make install查看编译后的结果:
[root@lb01:~]#nginx -V
nginx version: nginx/1.26.1
built by gcc 7.3.0 (GCC)
built with OpenSSL 1.1.1f  31 Mar 2020
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx6.使用模块
[root@lb01:conf.d]#cat up.conf
upstream web {server 172.16.1.7:80 max_fails=2 fail_timeout=10s;server 172.16.1.8:80 max_fails=2 fail_timeout=10s;check interval=3000 rise=2 fall=3 timeout=1000 type=tcp;#interval  检测间隔时间,单位为毫秒#rise      表示请求2次正常,标记此后端的状态为up#fall      表示请求3次失败,标记此后端的状态为down#type      类型为tcp#timeout   超时时间,单位为毫秒
}server {listen 80;server_name www.zh.com;location / {proxy_pass http://web;include proxy_params;}location /upstream_check {check_status;				# 使用的新增加的模块}
}
检查语法并重启
[root@lb01:conf.d]#nginx -t重启Nginx服务
[root@lb01:conf.d]#systemctl restart nginx
浏览器访问测试:
10.0.0.5 www.zh.com1.下载源码包
2.configure配置 可以修改位置 模块信息
3.make
4.make install
07.负载均衡会话保持
phpmyadmin业务通过页面管理数据库,
phpmyadmin业务会将会话保存到自己本地磁盘。
1.web01部署phpmyadmin业务
[root@web01:conf.d]#cat admin.conf
server {listen 80;server_name www.admin.com;root /code/admin;location / {index index.php index.html;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}语法测试并重启
[root@web01:conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01:conf.d]#systemctl restart nginx部署代码
[root@web01:conf.d]#mkdir /code/admin
[root@web01:conf.d]#cd /code/admin[root@web01:admin]# wget https://files.phpmyadmin.net/phpMyAdmin
/4.8.4/phpMyAdmin-4.8.4-all-languages.zip解压代码:
[root@web01:admin]#unzip phpMyAdmin-4.8.4-all-languages.zip
[root@web01:admin]#mv phpMyAdmin-4.8.4-all-languages/* .[root@web01:~]#chown -R www.www /var/lib/php/session配置代码连接数据库IP地址
[root@web01:admin]#cp config.sample.inc.php config.inc.php
[root@web01:admin]#grep -n 172 config.inc.php
31:$cfg['Servers'][$i]['host'] = '172.16.1.51';hosts解析
10.0.0.7 www.admin.com
测试web01访问www.admin.com查看session2.web02部署phpmyadmin业务
[root@web02:conf.d]#cat admin.conf
server {listen 80;server_name www.admin.com;root /code/admin;location / {index index.php index.html;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}将web01的代码目录拷贝到web02
[root@web02:conf.d]#scp -r 10.0.0.7:/code/admin /code/语法测试并重启
[root@web02:conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web02:conf.d]#systemctl restart nginx又是权限问题,又他妈是权限问题i
[root@web02:~]#chown -R nginx.nginx /var/lib/php/session
[root@web02:~]#ll -d /var/lib/php/session
drwxrwx--- 2 www www 6 Feb 23 16:03 /var/lib/php/session修改hosts
10.0.0.8 www.admin.com浏览器访问登录 www.admin.com3.phpmyadmin接入负载均衡
[root@lb01:conf.d]#cat proxy.conf
upstream webs {server 10.0.0.7;server 10.0.0.8;
}
server {listen 80;server_name www.admin.com;location / {proxy_pass http://webs;include proxy_params;}
}语法测试并重启
[root@lb01:conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01:conf.d]#systemctl restart nginx修改hosts指向负载
10.0.0.5  www.admin.com4.安装部署redis服务
[root@db01:~]#yum -y install redis
修改redis监听 增加172.16.1.51
[root@db01:~]#grep 172.16.1.51 /etc/redis.conf -n
69:bind 127.0.0.1 172.16.1.51启动redis
[root@db01:~]#systemctl start redis
[root@db01:~]#systemctl enable redis检查服务端口
[root@db01:~]#netstat -tnulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address            PID/Program name
tcp        0      0 172.16.1.51:6379        13968/redis-server
tcp        0      0 127.0.0.1:6379          13968/redis-server
tcp        0      0 0.0.0.0:22              824/sshd: /usr/sbin
tcp6       0      0 :::3306                4058/mysqld5.修改php配置将会话写入redis服务
web01修改:
[root@web01:~]#vim /etc/php.ini
1222 session.save_handler = redis
1255 session.save_path = "tcp://172.16.1.51:6379"PHP安装redis插件
第一步: 下载redis源码包
[root@web01:~]# wget http://pecl.php.net/get/redis-4.0.1.tgz
第二步: 解压代码
[root@web01:~]# tar xf redis-4.0.1.tgz
第三步: 配置
[root@web01:~]#cd redis-4.0.1/
phpize
[root@web01:redis-4.0.1]#./configure
第四步: 编译安装
[root@web01:redis-4.0.1]# make && make install
第五步: 开启redis插件功能,配置文件增加以下一行内容
[root@web01:~]#grep redis.so /etc/php.ini  -n
1357:extension=redis.so
第六步: 重启服务
[root@web01:~]#systemctl restart php-fpm将/etc/php-fpm.d/www.conf中以下两行内内容注释 前面加上;
仅仅是加注释
431 ;php_value[session.save_handler] = files
432 ;php_value[session.save_path]    = /var/lib/php/session完成后重启php-fpm
[root@web01:~]#systemctl restart php-fpmWEB02修改:
rsync -avz --delete 10.0.0.7:/etc/php.ini /etc/php.ini
rsync -avz --delete 10.0.0.7:/etc/php-fpm.d/www.conf  /etc/php-fpm.d/www.conf
重启php-fpm
[root@web02:~]#systemctl restart php-fpmPHP安装redis插件
第一步: 下载redis源码包
[root@web02:~]# wget http://pecl.php.net/get/redis-4.0.1.tgz
第二步: 解压代码
[root@web02:~]# tar xf redis-4.0.1.tgz
第三步: 配置
[root@web02:~]#cd redis-4.0.1/phpize
[root@web02:redis-4.0.1]#./configure
第四步: 编译安装
[root@web02:redis-4.0.1]# make && make install
第五步: 开启redis插件功能,配置文件增加以下一行内容
[root@web02:~]#grep redis.so /etc/php.ini  -n
1357:extension=redis.so
第六步: 重启服务
[root@web01:~]#systemctl restart php-fpmhosts解析
10.0.0.5 www.admin.comtail -f /var/log/nginx/access.log

相关文章:

day33-负载均衡实战

01.问题总结 1.rsync同步注意目录加/和不加/的区别 2.安装wordpress过程中禁止使用IP安装,解析成域名安装 比如安装过程 10.0.0.7--->填写数据库信息--->写入数据库中 如果安装完成后再使用www.wp.com访问&#xff0c;不能访问页面乱码的问题。 3.挂载wordpress挂载uplo…...

网络接口 eno1 未连接或未托管

网络接口 eno1 未连接或未托管&#xff0c;通常意味着该接口没有被识别或没有被配置为自动连接到网络。以下是一些可能的解决方案&#xff1a; 检查物理连接&#xff1a; 确保您的以太网电缆正确连接到 eno1 接口和调制解调器/路由器。 启用网络接口&#xff1a; 使用以下命令…...

Linux I/O 多路复用机制详解

文章目录 1 文件描述符&#xff08;File Descriptor&#xff09;1.1 什么是文件描述符&#xff1f;1.2 文件描述符与文件的关系 2 文件描述符集合&#xff08;File Descriptor Set&#xff09;2.1 什么是文件描述符集合&#xff1f;2.2 fd_set 结构体 3 select() 函数的工作原理…...

第43课 Scratch入门篇:雪花随风飘

雪花随风飘 故事背景: 雪花轻轻地从灰蒙蒙的天空中飘落下来,它们像是天空中飘洒下来的羽毛,又像是冬日的精灵在翩翩起舞。每一片雪花都独一无二,它们在空中旋转、飘荡,最终缓缓降落在屋顶、树枝、街道和行人的肩头。 程序原理: 众多的雪花肯定是克隆功能,降落过程是通过…...

VueUse 基于 Vue 3 Composition API 的高质量 Hooks 库

VueUse 是什么? VueUse 是基于 Vue 3 Composition API 的高质量 Hooks 库。例如获取滚动的距离 VueUse 官网:VueUse | VueUse VueUse 什么使用? 1、通过npm安装 VueUse npm i @vueuse/core 2、搜索需要使用的函数,例如搜索 useScroll 滚动 3、使用useScroll 滚动函数 …...

ARM CoreLink 系列 5.1.1 -- CI-700 System Address Map 】

文章目录 System Address MapRN SAMRN SAM memory regions and target typesSAM memory region size configurationRN SAM target ID selectionSystem Address Map 所有的CHI 命令都包含一个 Source ID 和 Target ID, 其中 Source ID 可以来自于 RN Node, Target ID 可以来自…...

【数据结构】二叉树(一)

目录 1. 树型结构 概念 树的表示形式 ​编辑 2. 二叉树&#xff08;重点&#xff09; 2.1 概念 2.2 二叉树的性质 2.3 二叉树的存储 2.4 二叉树的遍历 前中后序遍历 层序遍历&#xff1a; 2.5二叉树的基本操作 本篇主要理解树和二叉树相关概念&#xff0c;二叉树遍…...

使用duplicate搭建备库或者级联备库

使用duplicate搭建备库或者级联备库&#xff1a; 主库或者源端&#xff1a; 1. 创建pfile&#xff0c;更改&添加部分参数、传输到备库&#xff1b; 2. 主库&#xff08;或者源端&#xff09;的tnsnames.ora文件添加 备库的连接信息 备库&#xff1a; 1. 备库添加静态监听 2…...

【存储学习笔记】4:快照(Snapshot)技术的实现方式

1 快照 1.1 动机 在上一篇《备份》里提到&#xff0c;热备份就是在执行操作时&#xff0c;服务器需要正常处理来自用户或应用对数据的更新&#xff0c;这样能够保证数据7*24小时可用&#xff08;在很多服务里这是必要的&#xff09;。 而热备份的困难就是如何保证数据的一致…...

数根(字符串数根公式)

公式&#xff1a;a的数根(a-1)%91&#xff1b; #include <bits/stdc.h> using namespace std; string s; long long sum; int main(){cin>>s;for(int i0;i<s.size();i){sums[i]-0;}cout<<(sum-1)%91; }...

C语言之文件操作上卷(二十一)(逆行人生-2024)

&#x1f4e3;&#x1f4e3;&#x1f4e3;&#x1f4e3;&#x1f4e3;&#x1f4e3;&#x1f4e3;&#x1f4e3; ✏️作者主页&#xff1a;枫霜剑客 &#x1f4cb; 系列专栏&#xff1a;C语言知识学习归纳总结&#xff08;逐梦篇专栏合集&#xff09; &#x1f332;上一篇: C语…...

【微服务架构实战】结合实际案例进行微服务架构的设计与实现

微服务架构实战 结合实际案例进行微服务架构的设计与实现 引言 微服务架构&#xff08;Microservices Architecture&#xff09;是一种将大型应用程序拆分成一组小型、独立的服务的方法&#xff0c;每个服务都专注于特定的业务功能&#xff0c;并能够独立开发、部署和扩展。这…...

为什么要有二级指针

提示&#xff1a;文章 文章目录 前言一、背景二、 2.1 2.2 总结 前言 前期疑问&#xff1a; 本文目标&#xff1a; 一、背景 之前一直疑问为什么要有二级指针&#xff0c;一直没有写这个帖子&#xff0c;今天整理了一下&#xff0c;收获颇丰 二、 2.1 // 增加对二级指针…...

如何保证数据不丢失?(死信队列)

死信队列 1、什么是死信 死信通常是消息在特定的场景下表现&#xff1a; 消息被拒绝访问消费者发生异常&#xff0c;超过重试次数消息的Expiration过期时长或者队列TTL过期时间消息队列到达最大容量 maxLength 2、什么是死信队列 只由死信构成的消息队列是死信队列 死信队…...

树莓派开发笔记01-树莓派的系统烧录以及初次开机配置

github主页&#xff1a;https://github.com/snqx-lqh gitee主页&#xff1a;https://gitee.com/snqx-lqh 本项目github地址&#xff1a;https://github.com/snqx-lqh/RaspberryPiLearningNotes 本项目gitee地址&#xff1a;https://gitee.com/snqx-lqh/RaspberryPiLearningNote…...

微信答题小程序产品研发-后端开发

在开发答题小程序的后端服务和数据库设计时&#xff0c;需要考虑API的设计、数据库模型的构建以及数据的安全性和一致性。 这里我采用了云开发&#xff0c;后端语言是Node&#xff0c;数据库是NoSql&#xff0c;然后我简单整理了各个功能模块的后端开发概要和数据库设计。 1. …...

回溯算法——LeetCode37 解数独

题目 力扣题目链接 思路 卡哥的思路&#xff0c;注意看他解释为什么是“二维回溯”。我的思路&#xff0c;类似y总解决 N 皇后问题时的第二种方法&#xff0c;即从左上到右下枚举棋盘的每个位置。 至于为什么与 N 皇后问题不一样&#xff0c;我认为是因为它每一行不止放一个…...

【CPP】继承语法详解与菱形继承

关于我&#xff1a; 睡觉待开机&#xff1a;个人主页 个人专栏: 《优选算法》《C语言》《CPP》 生活的理想&#xff0c;就是为了理想的生活! 作者留言 PDF版免费提供&#xff1a;倘若有需要&#xff0c;想拿我写的博客进行学习和交流&#xff0c;可以私信我将免费提供PDF版。…...

数据结构(6.2_1)——领接矩阵法

图的存储——邻接矩阵法 邻接矩阵&#xff08;Adjacency Matrix&#xff09;是一种使用二维数组来表示图的方法。在这种表示法中&#xff0c;矩阵的行和列都对应图的顶点。 特点 对于无向图&#xff0c;如果顶点i与顶点j之间有边&#xff0c;则矩阵的第i行第j列&#xff08;…...

诈骗未成功是否构成犯罪?

诈骗未成功不一定构成犯罪。在刑法上&#xff0c;构成诈骗罪需要满足特定的构成要件&#xff0c;包括有非法占有的目的、实施了虚构事实或隐瞒真相的行为、对方因此陷入错误认识并处分财产、行为人或第三方取得财产、被害人遭受财产损失。如果诈骗行为未能成功&#xff0c;即被…...

网络协议栈应用层的意义(内含思维导图和解析图通俗易懂超易理解)

绪论​&#xff1a; “节省时间的方法就是全力以赴的将所要做的事情完美快速的做完&#xff0c;不留返工重新学习的时间&#xff0c;才能省下时间给其他你认为重要的东西。” 本章主要讲到OSI网络协议栈中的应用层的作用和再次在应用层的角度理解协议的具体意义&#xff0c;以及…...

【NXP-MCXA153】i2c驱动移植

介绍 ‌I2C总线由飞利浦公司开发&#xff0c;是一种串行单工通信总线&#xff0c;它主要用于连接微控制器和其他外围设备并在总线上的器件之间传送信息&#xff08;需要指定设备地址&#xff09;&#xff1b;常见的i2c设备有EEPROM、触摸屏、各种IoT传感器、时钟模块等&#x…...

C++(11)类语法分析(2)

C(10)之类语法分析(2) Author: Once Day Date: 2024年8月17日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: 源码分析_Once-Day的博客-CSDN博客 …...

数字验证每日十问--(3)

深拷贝和浅拷贝的区别&#xff1f; 当只拷贝对象中的成员变量和声明的句柄时&#xff0c;称为浅拷贝。浅拷贝只把对象中的句柄复制了&#xff0c;却没有复制句柄b所指向的对象。这会导致复制后&#xff0c;a2中的句柄b 和 a1 中的句柄b指向同一个对象&#xff0c;如果a2中的句…...

22.给定 n 对括号,实现一个算法生成所有可能的正确匹配的括号组合

22. Generate Parentheses 题目 给定 n 对括号,编写一个函数生成所有可能的正确匹配的括号组合。 例如,当 n = 3 时,可能的组合集合为: ["((()))","(()())","(())()","()(())","()()()" ]题目大意 给出 n 代表生成…...

检测到目标URL存在http host头攻击漏洞

漏洞描述 修复措施 方法一&#xff1a; nginx 的 default_server 指令可以定义默认的 server 去处理一些没有匹配到 server_name 的请求&#xff0c;如果没有显式定义&#xff0c;则会选取第一个定义的 server 作为 default_server。 server { …...

C++奇迹之旅:手写vector模拟实现与你探索vector 容器的核心机制与使用技巧

文章目录 &#x1f4dd;基本框架&#x1f320; 构造和销毁&#x1f309;vector()&#x1f309;vector(const vector& v)&#x1f309;vector(size_t n, const T& value T())&#x1f309;赋值拷贝构造&#xff1a;vector<T>& operator(vector<T> v)&a…...

018、钩子函数 mounted和beforeDestroy、父组件向子组件传递参数 props 的使用

文章目录 1、mounted 和 beforeDestroy1.1、mounted1.2、beforeDestroy 2、父组件向子组件传递参数 props2.1、子组件定义2.2、父组件调用子组件并传参 3、完整例子3.1、父组件 Tags.vue3.2、子组件 TagsMenu.vue3.3、效果图 1、mounted 和 beforeDestroy 1.1、mounted mount…...

xlnt在Windows中的dll,lib生成

前言 花了半天时间想要把xlnt 集成到VS2022 Cmake项目中,以我目前掌握的能力,Cmake语法对于我来说难懂,对于只是使用过Cmake编译MySQL,或是其他lib,dll库的小白来说,不应该为了显示自己能力多么出众,强行去配置一些程序内容。 生活中没有绝对的事情,有舍有得. https://github…...

【网络】私有IP和公网IP的转换——NAT技术

目录 引言 NAT工作机制​编辑 NAT技术的优缺点 优点 缺点 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 公网被子网掩码划分为层状结构&#xff0c;一个公网IP的机器又可以用很多私有IP搭建内网。在日常生活场景中用的都是私有IP&#xff0c;例如手机&#xff0c;…...

java 面试 PDF 资料整理

“尊贵的求知者&#xff0c;作者特此献上精心编纂的Java面试宝典PDF&#xff0c;这份资料凝聚了无数面试精华与实战经验&#xff0c;是通往Java技术殿堂的钥匙。若您渴望在Java编程的求职之路上稳健前行&#xff0c;只需轻轻一点&#xff0c;完成这象征支持与认可的一键三联&am…...

初步认识Linux系统

前言 Linux系统具有许多优点&#xff0c;不仅系统性能稳定&#xff0c;而且是开源软件。其核心防火墙组件性能高效、配置简单&#xff0c;保证了系统的安全。在很多企业网络中&#xff0c;为了追求速度和安全&#xff0c;Linux不仅仅是被网络运维人员当作服务器使用&#xff0c…...

JavaScript AI 编程助手

JavaScript AI 编程助手 引言 随着人工智能技术的飞速发展&#xff0c;编程领域也迎来了前所未有的变革。JavaScript&#xff0c;作为全球最流行的编程语言之一&#xff0c;其与AI的结合为开发者带来了巨大的便利和无限的可能性。本文将探讨JavaScript AI编程助手的定义、功能…...

达梦数据库的系统视图v$datafile

达梦数据库的系统视图v$datafile 达梦数据库的V$DATAFILE 是一个重要的系统视图&#xff0c;提供了有关数据库数据文件的信息。 V$DATAFILE 系统视图 V$DATAFILE 视图用于显示数据库中每一个数据文件的详细信息。通过查询这个视图&#xff0c;数据库管理员可以了解数据文件的…...

Triton/window安装: triton-2.0.0-cp310-cp310-win_amd64.whl文件

下面这个github仓&#xff1a; https://github.com/PrashantSaikia/Triton-for-Windows/tree/main 安装命令也很简单&#xff0c;下载到本地后运行: pip install triton-2.0.0-cp310-cp310-win_amd64.whl...

应急响应-DDOS-典型案例

某单位遭受DDoS攻击事件如下 事件背景 2019年2月17日&#xff0c;某机构门户网站无法访问&#xff0c;网络运维人员称疑似遭受DDoS攻击&#xff0c;请求应急响应工程师协助。 事件处置 应急响应工程师在达到现场后&#xff0c;通过查看流量设备&#xff0c;发现攻击者使用僵…...

JAVA学习之知识补充(下)

六&#xff1a;File类与IO流&#xff1a; 这里给出三种常见的初始化方法&#xff1a; 通过文件路径初始化: File file new File("C:/example/test.txt");这种方法用于创建一个文件对象&#xff0c;该文件对象表示指定路径的文件或目录。例如&#xff1a;File fil…...

qt生成一幅纯马赛克图像

由于项目需要&#xff0c;需生成一幅纯马赛克的图像作为背景&#xff0c;经过多次测试成功&#xff0c;记录下来。 方法一&#xff1a;未优化方法 1、代码&#xff1a; #include <QImage> #include <QDebug> #include <QElapsedTimer>QImage generateMosa…...

python循环——九九乘法表(更加轻松的理解循环结构)

感受 首先&#xff0c;得明确意识到这个问题&#xff0c;就是我的循环结构学的一塌糊涂&#xff0c;完全不能很好的使用这个循环来实现各种九九乘法表达输出&#xff0c;这样的循环结构太差了&#xff0c;还需要我自己找时间来补充一下循环的使用&#xff0c;来拓宽自己的思考方…...

UDS诊断系列之十八故障码的状态掩码

在谈19服务的子功能之前&#xff0c;先说一下故障码&#xff08;DTC&#xff09;的状态掩码是什么。 一、状态掩码 状态掩码由八个状态位构成&#xff0c;客户端利用它向服务器请求与其状态相匹配的DTC信息。当服务器接收到来自客户端的请求时&#xff0c;它会通过过滤匹配的…...

【jvm】直接引用

目录 1. 说明2. 形式3. 特点4. 生成过程5. 作用 1. 说明 1.在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;直接引用&#xff08;Direct Reference&#xff09;是相对于符号引用&#xff08;Symbolic Reference&#xff09;而言的&#xff0c;它是指向内存中实际存在的…...

PythonStudio 控件使用常用方式(二十七)TActionList

PythonStudio是一个极强的开发Python的IDE工具&#xff0c;官网地址是&#xff1a;https://glsite.com/ &#xff0c;在官网可以下载最新版的PythonStudio&#xff0c;同时&#xff0c;在使用PythonStudio时&#xff0c;它也能及时为用户升到最新版本。它使用的是Delphi的控件&…...

PDF 转Word 开源库

1. Apache PDFBox Apache PDFBox 是一个开源的 Java 库&#xff0c;用于创建和操作 PDF 文档。虽然 PDFBox 本身没有直接支持 PDF 转 Word 的功能&#xff0c;但它可以提取 PDF 内容&#xff0c;你可以结合其他方法将这些内容写入 Word。 添加依赖 <dependency><gr…...

Docker - 深入理解Dockerfile中的 RUN, CMD 和 ENTRYPOINT

RUN docker file 中的 RUN 命令相对来教容易理解 RUN 指令用于在构建镜像时执行命令&#xff0c;这些命令会在 Docker 镜像的构建过程中执行。常用于安装软件包、设置环境变量、创建目录等。RUN 指令会在镜像构建中创建新的镜像层&#xff0c;每个 RUN 指令都会创建一个新的镜…...

Python 函数式编程 内置高阶函数及周边【进阶篇 3】推荐

前面我们已经总结并实践了用python获取到了数据。也介绍了python中http网络请求的几种方式&#xff0c;正在学习python开发语言或者对python3知识点生疏需要回顾的请点这里 &#xff0c;本章主要总结了函数式编程及特点 和 python中内置的高阶函数及周边知识&#xff0c;方便自…...

【Rust光年纪】探秘Rust GUI库:从安装配置到API概览

Rust语言GUI库全方位比较&#xff1a;选择适合你的工具 前言 在现代软件开发中&#xff0c;图形用户界面&#xff08;GUI&#xff09;库扮演着至关重要的角色。随着Rust语言的不断发展&#xff0c;越来越多的优秀的GUI库也相继问世&#xff0c;为Rust开发者提供了更多选择。本…...

Element plus部分组件样式覆盖记录

文章目录 一、el-button 样式二、Popconfirm 气泡确认框三、Popover 气泡卡片四、Checkbox 多选框五、Pagination 分页六、Form 表单七、Table 表格 一、el-button 样式 html&#xff1a; <el-button class"com_btn_style">button</el-button>样式覆盖…...

重塑业务生态,Vatee万腾平台:引领行业变革的新引擎

在数字经济浪潮汹涌的今天&#xff0c;传统行业的边界正被不断模糊与重塑&#xff0c;新兴技术如云计算、大数据、人工智能等正以前所未有的速度改变着商业世界的面貌。在这一背景下&#xff0c;Vatee万腾平台应运而生&#xff0c;以其独特的创新模式和强大的技术实力&#xff…...

标准术语和定义中的【架构】应该如何描述

一、参考国家标准和国际标准中对“架构”的描述 &#xff08;1&#xff09;GB/T 8566-2022 国家标准 架构的术语描述&#xff1a;(系统)在其环境中的一些基本概念或性质,体现在其元素关系,以及设计与演进原则中。 &#xff08;2&#xff09;ISO/IEC/IEEE 42010 国际标准 架构的…...

华为鸿蒙Core Vision Kit 骨骼检测技术

鸿蒙Core Vision Kit 是华为鸿蒙系统中的一个图像处理框架&#xff0c;旨在提供各种计算机视觉功能&#xff0c;包括物体检测、人脸识别、文本识别等。骨骼检测是其中的一项功能&#xff0c;主要用于检测和识别人类身体的骨骼结构。 骨骼检测的关键点 骨骼点检测&#xff1a;通…...