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

麒麟操作系统服务架构保姆级教程(八)数据库拆分静态业务拆分和负载均衡

        当我们网站的访问量提升上来了,平均每分钟上千条访问量,但是服务器的性能是有限的,所以就需要将单台的架构进行拆分了,但是web服务器的内容不同怎么办,就会用到咱们的共享存储,两台web服务器今天咱们将LNMP架构拆分,分别拆分为:lb负载均衡,web服务器,数据库服务器,共享存储服务器,好,话不多说,直接开始操作

目录

一、LNMP架构拆分:数据库

二、LNMP架构拆分:扩展web服务

三、配置NFS服务

四、nginx正向代理和反向代理

五、配置负载均衡:

六、负载均衡调度算法


💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!

👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!

🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!

服务器拆分如下:

服务器名称IP
lb0110.0.0.5
web0110.0.0.7
web0210.0.0.8
db0110.0.0.51
nfs10.0.0.31

一、LNMP架构拆分:数据库

db01   10.0.0.51
web01  10.0.0.7
第一步: 准备一台10.0.0.51服务器
1.部署Mariadb服务
[root@db01 ~]#yum -y install mariadb-server
2.启动mariadb 加入开机自动启动
[root@db01 ~]#systemctl start mariadb
[root@db01 ~]#systemctl enable mariadb
第二步:将web01上的数据库的内容倒入文件中名为all.sql
[root@web01 ~]# mysqldump -uroot -pqy123.com -A >all.sql
第三步:将all.sql 拷贝到db01
[root@db01 ~]# scp all.sql 10.0.0.51:/root/ 
第四步:db01服务器将all.sql导入本地数据
[root@db01 ~]#mysql -uroot < all.sql
重启密码生效
[root@db01 ~]#systemctl restart mariadb
授权一个用户可以实现远程连接:
[root@db01 ~]#mysql -uroot -pqy123.com
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 使用以下命令授权远程用户qy 管理所有的库和所有的表,密码为qy123.com
MariaDB [(none)]> grant all on  *.* to qy@'%' identified by 'qy123.com';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit
Bye
第五步: web01服务器修改业务代码数据信息指向db01
web服务器停止数据库并禁止开机自动运行!!!
[root@web01 ~]#systemctl stop mariadb
[root@web01 ~]#systemctl disable mariadb
测试远程连接数据库:
先用root用户测试
[root@web01 ~]#mysql -h 172.16.1.51 -uroot -pqy123.com
ERROR 1045 (28000): Access denied for user 'root'@'172.16.1.7' (using password: YES)
在用授权用户qy测试
[root@web01 ~]#mysql -h 172.16.1.51 -uqy -pqy123.com
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
MariaDB [(none)]> quit
修改代码中的数据库的配置信息:
查找数据库信息位于哪个配置文件
[root@web01 wordpress]#grep 'y123.com' .* -r
./wp-config.php:define( 'DB_PASSWORD', 'qy123.com' );
../wordpress/wp-config.php:define( 'DB_PASSWORD', 'qy123.com' );
../she/config.php:$pe['db_pw'] = 'qy123.com'; //数据库密码
找到后进行修改:
[root@web01 wordpress]#egrep 'DB_USER|DB_HOST'  wp-config.php -n
26:define( 'DB_USER', 'qy' );
32:define( 'DB_HOST', '172.16.1.51' );
访问业务测试:
www.wp.com

二、LNMP架构拆分:扩展web服务

web01 10.0.0.7
web02 10.0.0.8
db01  10.0.0.51
1.准备一台web02
2.创建虚拟用户www
[root@web02 ~]#groupadd -g666 www
[root@web02 ~]#useradd -u666 -g666 -M -s /sbin/nologin www
3.web02服务器部署nginx
[root@web02 ~]#scp 172.16.1.7:/etc/yum.repos.d/nginx.repo /etc/yum.repos.d/
[root@web02 ~]#yum -y install nginx
4.web02服务器部署php
1)上传php.tar.gz
2)解压
[root@web02 ~]#tar xf php71.tar.gz
3)本地安装
[root@web02 ~]#yum -y localinstall *.rpm
5.nginx配置无差异同步web01
[root@web02 ~]#rsync -avz --delete 172.16.1.7:/etc/nginx /etc/
6.php配置无差异同步web01
[root@web02 ~]#rsync -avz --delete 172.16.1.7:/etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf
7.web01将整个代码目录拷贝到web02
web01打包代码目录
[root@web01 /]#tar zcvf code.tar.gz code
拷贝到web02
[root@web01 /]#scp code.tar.gz 172.16.1.8:/
web02解压代码目录
[root@web02 /]#tar xf code.tar.gz 
[root@web02 /]#ll code
8.修改session目录权限
[root@web02 ~]#chown www.www /var/lib/php/session/
9.启动服务
[root@web02 ~]#systemctl start nginx php-fpm
[root@web02 ~]#systemctl enable nginx php-fpm
10.测试服务
将hosts 解析到web02
10.0.0.8  www.wp.com

10.0.0.8可以正常访问服务啦!!!

三、配置NFS服务

10.0.0.7  web01 客户端
10.0.0.8  web02 客户端
10.0.0.31 NFS   服务端
1.装备一台NFS服务器 
2.安装nfs服务
yum -y install nfs-utils
3.配置nfs服务
[root@nfs ~]#cat /etc/exports
/code/wp  172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/code/she 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
创建必要数据:
[root@nfs ~]#groupadd  -g666 www
[root@nfs ~]#useradd -u666 -g666 -M -s /sbin/nologin www
[root@nfs ~]#mkdir -p /code/{wp,she}
[root@nfs ~]#ll /code/
total 0
drwxr-xr-x 2 root root 6 Apr 18 11:30 she
drwxr-xr-x 2 root root 6 Apr 18 11:30 wp
授权属主属组为www
[root@nfs ~]#chown www.www /code/{wp,she}
[root@nfs ~]#ll /code/
total 0
drwxr-xr-x 2 www www 6 Apr 18 11:30 she
drwxr-xr-x 2 www www 6 Apr 18 11:30 wp
4.启动nfs服务
[root@nfs ~]#systemctl start nfs
[root@nfs ~]#systemctl enable nfs
5.检查nfs服务
[root@nfs ~]#cat /var/lib/nfs/etab 
/code/she   
172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)
/code/wp    
172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)
客户端挂载:
1.两台客户端web01和web02需要安装nfs-utils 不需要启动
[root@web01 ~]#yum -y install nfs-utils
[root@web02 ~]#yum -y install nfs-utils
2.将web01和web02上本地磁盘上的图片推送到nfs服务端
[root@web01 /]#scp -r /code/wordpress/wp-content/uploads/2024 172.16.1.31:/code/wp/
[root@web02 ~]#scp -r /code/wordpress/wp-content/uploads/2024/04/* 172.16.1.31:/code/wp/2024/04/
3.挂载查看图片
web01挂载
[root@web01 ~]#mount -t nfs 172.16.1.31:/code/wp /code/wordpress/wp-content/uploads
[root@web01 zh]#df -h
df: ‘/mnt’: Stale file handle
Filesystem            Size  Used Avail Use% Mounted on
devtmpfs              476M     0  476M   0% /dev
tmpfs                 487M     0  487M   0% /dev/shm
tmpfs                 487M  7.7M  479M   2% /run
tmpfs                 487M     0  487M   0% /sys/fs/cgroup
/dev/sda3              18G  2.6G   16G  15% /
/dev/sda1             197M  110M   88M  56% /boot
tmpfs                  98M     0   98M   0% /run/user/0
172.16.1.31:/code/wp   18G  2.0G   16G  12% /code/wp/wp-content/uploads   
修改NFS上共享目录下权限
[root@nfs ~]#chown -R www.www /code/wp/
[root@nfs ~]#ll /code/wp/
total 0
drwxr-xr-x 3 www www 16 Apr 18 11:36 2024
web02挂载
[root@web02 ~]#mount -t nfs 172.16.1.31:/code/wp /code/wordpress/wp-content/uploads
[root@web02 ~]#df -h
Filesystem            Size  Used Avail Use% Mounted on
devtmpfs              476M     0  476M   0% /dev
tmpfs                 487M     0  487M   0% /dev/shm
tmpfs                 487M  7.7M  479M   2% /run
tmpfs                 487M     0  487M   0% /sys/fs/cgroup
/dev/sda3              18G  2.3G   16G  13% /
/dev/sda1             197M  110M   88M  56% /boot
tmpfs                  98M     0   98M   0% /run/user/0
172.16.1.31:/code/wp   18G  2.0G   16G  12% /code/wordpress/wp-content/uploads

在10.0.0.7创建新的内容

10.0.0.8也可以访问到内容啦

四、nginx正向代理和反向代理

正向代理正向代理是一个位于客户端和目标服务器之间的代理服务器。客户端通过配置正向代理服务器,将请求发送给代理服务器,代理服务器再将请求转发到目标服务器,目标服务器响应后,代理服务器将响应返回给客户端。简单来说,正向代理是代表客户端去访问目标服务器;在一些情况下,客户端可能不想让目标服务器知道自己的真实 IP 地址,通过正向代理,目标服务器看到的请求 IP 是代理服务器的 IP,从而保护了客户端的隐私。
反向代理
定义:
反向代理服务器位于目标服务器(如 Web 服务器)之前,客户端直接向反向代理服务器发送请求,反向代理服务器根据请求的内容,将请求转发到内部的真实服务器(可以是一个或多个),并将真实服务器的响应返回给客户端。反向代理是代表服务器来接收客户端的请求。
可以通过nginx的反向代理实现负载均衡,当网站的流量很大时,通过将请求均匀地分配到多个内部服务器,可以避免单个服务器过载,提高系统的整体性能和可用性。例如,一个大型电商网站在促销活动期间,大量的用户请求可以通过反向代理被分配到多个 Web 服务器上进行处理。反向代理服务器可以隐藏内部服务器的真实 IP 地址,对内部服务器起到一定的保护作用。外部的恶意攻击者很难直接攻击到内部的真实服务器,因为他们接触到的只有反向代理服务器。而且,反向代理服务器还可以对请求进行过滤,如过滤恶意请求、SQL 注入攻击等,提高系统的安全性;随着网站业务的增长,可以方便地在后端添加更多的真实服务器,只需要在反向代理服务器上配置好新的服务器加入负载均衡的规则即可,而不需要对客户端进行任何修改。

五、配置负载均衡:

10.0.0.5
1.配置nginx仓库
[root@web01 /]#scp /etc/yum.repos.d/nginx.repo 10.0.0.5:/etc/yum.repos.d/nginx.repo
2.安装nginx
[root@lb01 ~]#yum -y install nginx
3.配置负载均衡
[root@lb01 conf.d]#cat default.conf 
upstream webs {server 172.16.1.7;server 172.16.1.8;
}
server {listen 80;server_name www.static.com;location / {proxy_pass http://webs;include proxy_params;}
}
[root@lb01 conf.d]#cat ../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;

修改本地的hosts解析;

发现是通过10.0.0.5负载均衡服务器进行的转发访问了

六、负载均衡调度算法

负载均衡的几种调度算法?
一共五种:
1.轮询  按时间顺序逐一分配到不同的后端服务器(默认)    配置相同。默认的为轮询
2.weight  加权轮询,weight值越大,分配到的访问几率越高 后端web服务器配置不相同使用
3.ip_hash 每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
4.url_hash  按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
5.least_conn  最少链接数,那个机器链接数少就分发
简述(五种!五种!五种!!!)
1.rr轮询
2.加权轮询
3.ip_hash
4.url_hash
5.最少连接数

今天的LNMP架构拆分就告一段落了,但是负载均衡服务还有很多,下篇文章我准备着重介绍一下各类的负载均衡实现方法


想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~ 

相关文章:

麒麟操作系统服务架构保姆级教程(八)数据库拆分静态业务拆分和负载均衡

当我们网站的访问量提升上来了&#xff0c;平均每分钟上千条访问量&#xff0c;但是服务器的性能是有限的&#xff0c;所以就需要将单台的架构进行拆分了&#xff0c;但是web服务器的内容不同怎么办&#xff0c;就会用到咱们的共享存储&#xff0c;两台web服务器今天咱们将LNMP…...

LQ24fresh

目录 C. 录入成绩 D. 标记名字 E. 奖杯排列 C. 录入成绩 &#xff08;1&#xff09;以国特 G 为切入点&#xff0c;枚举每一个 G 单独时是否为合法字符串&#xff0c;若合法 G1 有多少个 &#xff08;2&#xff09;用到的两个 string 函数&#xff1a; s.erase( i, a ) &…...

Postman[8] 断言

1.常见的断言类型 status code: code is 200 //检查返回的状态码是否为200 Response body&#xff1a; contain string //检查响应中包含指定字符串包含指定的值 response body:json value check/ /检查响应中其中json的值 Response body&#xff1a; is equal to string …...

YOLOv8/YOLOv11改进 添加CBAM、GAM、SimAM、EMA、CAA、ECA、CA等多种注意力机制

目录 前言 CBAM GAM SimAM EMA CAA ECA CA 添加方法 YAML文件添加 使用改进训练 前言 本篇文章将为大家介绍Ultralytics/YOLOv8/YOLOv11中常用注意力机制的添加&#xff0c;可以满足一些简单的涨点需求。本文仅写方法&#xff0c;原理不多讲解&#xff0c;需要可跳…...

C语言return与 ? :

上次讲解过一次函数&#xff0c;函数要配合return返回东西&#xff0c;但是在编写一些程序的时候我发现了很多冷门逻辑语法还没有掌握&#xff0c;当时讲课也是看一眼就过去了&#xff08;死去的记忆开始攻击我&#xff09; Return&#xff0c;爽&#xff01; 现在有一个小问…...

持续大额亏损,销量增幅有限,北汽蓝谷依旧黯然神伤

撰稿 | 行星 来源 | 贝多财经 “起了个大早&#xff0c;赶了个晚集”&#xff0c;用在如今的北汽蓝谷身上再合适不过。 2025年的第一个工作日&#xff0c;北汽蓝谷新能源科技股份有限公司&#xff08;SH:600733&#xff0c;简称“北汽蓝谷”&#xff09;对外披露了子公司北京…...

(五)开机自启动以及scp工具文件传输小问题

文章目录 程序开机自启动先制作一个可执行程序第一种 通过命令行实现程序开机自启动第二种 通过 Linux 系统镜像实现程序开机自启动 scp工具文件传输小问题 程序开机自启动 原因&#xff1a;做成产品后&#xff0c;用户直接开机使用&#xff0c;总不能在开机执行程序后才可以使…...

数据挖掘——支持向量机分类器

数据挖掘——支持向量机分类器 支持向量机最小间隔面推导基于软间隔的C-SVM非线性SVM与核变换常用核函数 支持向量机 根据统计学习理论&#xff0c;学习机器的实际风险由经验风险值和置信范围值两部分组成。而基于经验风险最小化准则的学习方法只强调了训练样本的经验风险最小…...

自动化办公 | 根据成绩进行自动评级

今天我们将介绍一个常见的自动化办公需求&#xff1a;根据成绩自动评级。通过这篇文章&#xff0c;我们将介绍如何利用Python进行自动化办公&#xff0c;将表格中的成绩根据预定的规则进行评级&#xff0c;并生成一个新的带评级信息的表格。 需求背景 我们有一个表格&#xf…...

Java强引用、软引用、弱引用、虚引用的区别?

大家好&#xff0c;我是锋哥。今天分享关于【Java强引用、软引用、弱引用、虚引用的区别&#xff1f;】面试题。希望对大家有帮助&#xff1b; Java强引用、软引用、弱引用、虚引用的区别&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在Java中&#…...

pikachu靶场--目录遍历和敏感信息泄露

pikachu靶场—目录遍历和敏感信息泄露 目录遍历 概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量&#xff0c;从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时&#xff0c;便会将请求的这个文件的值(比如文件名称)传递到后台&#xff0c;后台再…...

【Unity3D】UGUI Canvas画布渲染流程

参考文档&#xff1a;画布 - Unity 手册 Canvas组件&#xff1a;画布组件是进行 UI 布局和渲染的抽象空间。所有 UI 元素都必须是附加了画布组件的游戏对象的子对象。 参数&#xff1a; Render Mode 渲染模式&#xff1a;Screen Space - Overlay、Screen Spa…...

【办公类-47-02】20250103 课题资料快速打印(单个docx转PDF,多个pdf合并一个PDF 打印)

背景需求&#xff1a; 2023区级大课题《运用Python优化3-6岁幼儿学习活动材料的实践研究》需要做阶段资料 本来应该2024年6月就提交电子稿和打印稿。可是python学具的教学实验实在太多了&#xff0c;不断生成&#xff0c;我忙着做教学&#xff0c;都没有精力去整理。 2025年…...

ELK 使用教程采集系统日志 Elasticsearch、Logstash、Kibana

前言 你知道对于一个系统的上线考察&#xff0c;必备的几样东西是什么吗&#xff1f;其实这也是面试中考察求职者&#xff0c;是否真的做过系统开发和上线的必备问题。包括&#xff1a;服务治理(熔断/限流) (opens new window)、监控 (opens new window)和日志&#xff0c;如果…...

把vue项目或者vue组件发布成npm包或者打包成lib库文件本地使用

将vue项目发布成npm库文件&#xff0c;第三方通过npm依赖安装使用&#xff1b;使用最近公司接了一个项目&#xff0c;这个项目需要集成到第三方页面&#xff0c;在第三方页面点击项目名称&#xff0c;页面变成我们的项目页面&#xff1b;要求以npm库文件提供给他们&#xff1b;…...

遇到复杂的 递归查询sql 需要oracle 转pgsql 可以把数据表结构给ai

遇到复杂的 递归查询sql 需要oracle 转pgsql 可以把数据表结构给ai 并且 建立备份表 把需要的很少的数据放到表里面 这样 ai 可以很好的判断sql 咋写 还可以&#xff0c;让ai解释oracle sql 然后拿到描述和表和字段&#xff0c;给ai让他生成pgsql 的sql&#xff0c;亲测有效...

smell---Paddle-DI

跨模态文档智能大模型–Ernie-Layout 目标&#xff1a;提取文档中无结构或半结构化的知识 github项目地址 Paddle NLP ERNIE-Layout基于Transformer Encode架构&#xff0c;并提出以下trick&#xff1a; 1、OCR工具提取信息 借助OCR工具提取图片中的文字及文字对应的坐标信息…...

【JavaWeb后端学习笔记】MySQL的数据控制语言(Data Control Language,DCL)

MySQL DCL 1、管理用户2、控制权限 DCL英文全称是Data Control Language&#xff08;数据控制语言&#xff09;&#xff0c;用来管理数据库用户、控制数据库访问权限。 1、管理用户 管理用户的操作都需要在MySQL自带的 mysql 数据库中进行。 -- 查询用户 -- 需要先切换到MyS…...

python +tkinter绘制彩虹和云朵

python tkinter绘制彩虹和云朵 彩虹&#xff0c;简称虹&#xff0c;是气象中的一种光学现象&#xff0c;当太阳光照射到半空中的水滴&#xff0c;光线被折射及反射&#xff0c;在天空上形成拱形的七彩光谱&#xff0c;由外圈至内圈呈红、橙、黄、绿、蓝、靛、紫七种颜色。事实…...

【银河麒麟高级服务器操作系统实例】tcp半链接数溢出分析及处理全过程

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://document.kylinos.cn 服务器环境以及配置 系统环境 物理机/虚拟机/云…...

python实现,outlook每接收一封邮件运行检查逻辑,然后发送一封邮件给指定邮箱

以下是一个使用 Python 和 win32com.client 模块实现的示例代码&#xff0c;每当 Outlook 接收到一封新邮件时&#xff0c;执行检查逻辑并发送一封邮件到指定邮箱。这个代码依赖于 Windows 系统和安装了 Microsoft Outlook。 环境准备 确保安装了 pywin32 库&#xff1a;pip …...

HTML——70. 多行文本输入框

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>多行文本输入框</title></head><body><!--单行文本输入框在输入长度超过文本框长度&#xff0c;则超出部分会被隐藏掉&#xff08;即超出部分看不到&a…...

leetcode题目(3)

目录 1.加一 2.二进制求和 3.x的平方根 4.爬楼梯 5.颜色分类 6.二叉树的中序遍历 1.加一 https://leetcode.cn/problems/plus-one/ class Solution { public:vector<int> plusOne(vector<int>& digits) {int n digits.size();for(int i n -1;i>0;-…...

Spring Security(maven项目) 3.0.2.4版本

前言&#xff1a; 通过实践而发现真理&#xff0c;又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识&#xff0c;又从理性认识而能动地指导革命实践&#xff0c;改造主观世界和客观世界。实践、认识、再实践、再认识&#xff0c;这种形式&#xff0c;循环往…...

ArcgisServer过了元旦忽然用不了了?许可过期

昨天过完元旦之后上班发现好多ArcgisServer的站点运行出错了&#xff0c;点击日志发现&#xff0c;说是许可过去&#xff0c;也就是当时安装ArcgisServer时读取的ecp文件过期了&#xff0c;需要重新读取。 解决方法 1.临时方法&#xff0c;修改系统时间&#xff0c;早于2024年…...

Ubuntu22.04配置静态ip

1. 编辑网络配置文件 sudo vim /etc/netplan/00-installer-config.yaml 2.输入下面配置 将静态ip设置为192.168.3.200 &#xff0c;并设置路由器地址192.168.3.1&#xff0c;以及dns地址 223.5.5.5和223.6.6.6 dhcp4: false 表示取消动态分配ip network:ethernets:e…...

router 动态路由与懒加载

路由的使用 静态路由 静态路由: 引入组件然后挂载到router的component下,这样在页面刷新时,就会直接请求引入, 当项目越来越大时, 初始化的时间就会越来越长,因为它要将所有的页面全部引入后才会去渲染页面. 不管你当前页面有没有用到, 初始化是加载的是项目中所有组件,以及t…...

网络安全 | 信息安全管理体系(ISMS)认证与实施

网络安全 | 信息安全管理体系&#xff08;ISMS&#xff09;认证与实施 一、前言二、信息安全管理体系&#xff08;ISMS&#xff09;概述2.1 ISMS 的定义与内涵2.2 ISMS 的核心标准 ——ISO/IEC 27001 三、信息安全管理体系&#xff08;ISMS&#xff09;认证3.1 认证的意义与价值…...

【机器学习:一、机器学习简介】

机器学习是当前人工智能领域的重要分支&#xff0c;其目标是通过算法从数据中提取模式和知识&#xff0c;并进行预测或决策。以下从 机器学习概述、有监督学习 和 无监督学习 三个方面进行介绍。 机器学习概述 机器学习定义 机器学习&#xff08;Machine Learning&#xff0…...

DjangoORM字段参数、常用字段类型及参数、模型和表单验证器详解

由于项目原因必须使用DjangoORM模型&#xff0c;所以今天整理了一下关于DjangoORM模型里的详细内容。包含字段参数、常用字段类型及参数、模型和表单验证器。 一、通用字段参数 这些参数可以应用于多种字段类型&#xff1a; &#xff08;1&#xff09;null&#xff1a;如果为 …...

【pyqt】(四)Designer布局

布局 之前我们利用鼠标拖动的控件的时候&#xff0c;发现一些部件很难完成对齐这些工作&#xff0c;pyqt为我们提供的多种布局功能不仅可以让排版更加美观&#xff0c;还能够让界面自适应窗口大小的变化&#xff0c;使得布局美观合理。最常使用的三种布局就是垂直河子布局、水…...

每日一学——自动化工具(Jenkins)

3.2 Jenkins 3.2.1 CI/CD流程设计 嘿&#xff0c;小伙伴们&#xff01;今天我们来聊聊Jenkins——这个在持续集成&#xff08;CI&#xff09;和持续部署&#xff08;CD&#xff09;领域里大名鼎鼎的工具。Jenkins不仅可以帮我们自动化构建和测试代码&#xff0c;还能自动部署…...

k8s基础(1)—Kubernetes-Pod

一、Pod简介 Pod是Kubernetes&#xff08;k8s&#xff09;系统中可以创建和管理的最小单元&#xff0c;是资源对象模型中由用户创建或部署的最小资源对象模型‌。Pod是由一个或多个容器组成的&#xff0c;这些容器共享存储和网络资源&#xff0c;可以看作是一个逻辑的主机‌。…...

《Java核心技术 卷II》流的创建

流的创建 Collection接口中stream方法可以将任何集合转换为一个流。 用静态Stream.of转化成数组。 Stream words Stream.of(contents.split("\\PL")); of方法具有可变长参数&#xff0c;可以构建具有任意数量的流。 使用Array.stream(array,from,to)可以用数组…...

单片机实物成品-010 智能宠物喂食系统(代码+硬件+论文)

项目介绍 版本1&#xff1a;oled显示定时投喂&#xff08;舵机模拟&#xff09;声光报警显示实时时间 ---演示视频&#xff1a; 智能宠物喂食001_哔哩哔哩_bilibili 1. STM32F103C8T6 单片机进行数据处理 2. OLED 液晶显示 3&#xff0c;按键1 在数据显示界面时按下按键1切…...

我用AI学Android Jetpack Compose之开篇

打算写一个系列&#xff0c;我用AI学Android Jetpack Compose&#xff0c;本教程需要有一定Android开发基础的同学&#xff0c;至少能运行成功Hello World&#xff01;会基本的Java或Kotlin语法&#xff0c;如果不会&#xff0c;先去学习基本的Android应用开发&#xff0c;推荐…...

算法题(24):只出现一次的数字(二)

审题&#xff1a; 数组中除了答案元素只出现一次外&#xff0c;其他元素都会出现三次&#xff0c;我们需要找到并返回答案元素 思路&#xff1a; 由于现在会出现三次&#xff0c;所以利用异或运算符的方法就会失效。而所有数据都在32位二进制范围内&#xff0c;所以我们采用依次…...

计算机网络 (15)宽带接入技术

前言 计算机网络宽带接入技术是指通过高速、大容量的通信信道或网络&#xff0c;实现用户与互联网或其他通信网络之间的高速连接。 一、宽带接入技术的定义与特点 定义&#xff1a;宽带接入技术是指能够传输大量数据的通信信道或网络&#xff0c;其传输速度通常较高&#xff0c…...

什么是索引

在数据库管理系统中&#xff0c;索引是一种数据结构&#xff0c;用于快速定位数据库表中的特定记录。索引类似于一本书的目录&#xff0c;可以帮助数据库引擎迅速找到所需的数据&#xff0c;而不必扫描整个表。 类型&#xff1a;常见的数据库索引类型包括B树索引、哈希索引、全…...

【数据结构】树链刨分

1 u v k&#xff0c;修改路径上节点权值&#xff0c;将节点 uu 和节点 vv 之间路径上的所有节点&#xff08;包括这两个节点&#xff09;的权值增加 kk。2 u k&#xff0c;修改子树上节点权值&#xff0c;将以节点 uu 为根的子树上的所有节点的权值增加 kk。3 u v&#xff0c;询…...

perl包安装的CPAN大坑

先看一个用cpan安装的例子。 $cpan -i App::cpanminus Loading internal logger. Log::Log4perl recommended for better logging Reading /home/wubin/.cpan/MetadataDatabase was generated on Tue, 24 Dec 2024 15:29:01 GMT Running install for module App::cpanminusTry…...

打造三甲医院人工智能矩阵新引擎(四):医疗趋势预测大模型篇 EpiForecast与DeepHealthNet合成应用

一、引言 1.1 研究背景与意义 在当今数字化时代,医疗领域积累了海量的数据,涵盖电子病历、医学影像、基因序列、临床检验结果等多源异构信息。这些数据蕴含着疾病发生发展、治疗反应、疫情传播等规律,为医疗趋势预测提供了数据基础。准确的医疗趋势预测能辅助医疗机构提前…...

RSA e与phi不互质(AMM算法进行有限域开根)

e与phi不互质 这一部分学习来自trup师傅的博客 针对CTFer的e与phi不互素的问题 - 跳跳糖 1&#xff1a;m^t<n from Crypto.Util.number import * from secret import flag flag bflag{*********} m bytes_to_long(flag) p getPrime(1024) q getPrime(1024) n p * q …...

021-spring-springmvc-组件

SpringMVC的handMapping 比较重要的部分 比较重要的部分 比较重要的部分 关于组件的部分 这里以 RequestMappingHandlerMapping 为例子 默认的3个组件是&#xff1a; org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping org.springframework.web.servlet.mvc…...

【Leecode】Leecode刷题之路第99天之恢复二叉搜索树

题目出处 99-恢复二叉搜索树-题目出处 题目描述 个人解法 思路&#xff1a; todo代码示例&#xff1a;&#xff08;Java&#xff09; todo复杂度分析 todo官方解法 99-恢复二叉搜索树-官方解法 方法1&#xff1a;显式中序遍历 思路&#xff1a; 代码示例&#xff1a;&…...

【从零开始入门unity游戏开发之——C#篇41】C#迭代器(Iterator)——自定义类实现 foreach 操作

文章目录 前言一、什么是迭代器&#xff1f;二、标准迭代器的实现方法1、自定义一个类CustomList2、让CustomList继承IEnumerable接口3、再继承IEnumerator接口4、完善迭代器功能5、**foreach遍历的本质**&#xff1a;6、在Reset方法里把光标复原 三、用yield return语法糖实现…...

运算符重载 - 自定义运算符行为

引言 C 是一种支持面向对象编程&#xff08;OOP&#xff09;的编程语言&#xff0c;它允许程序员通过运算符重载来自定义类的行为。运算符重载使得我们可以为自定义类型定义与内置类型相似的操作方式&#xff0c;从而使代码更加直观和易读。 本文将详细介绍 C 中的运算符重载…...

RabbitMQ-基本使用

RabbitMQ: One broker to queue them all | RabbitMQ 官方 安装到Docker中 docker run \-e RABBITMQ_DEFAULT_USERrabbit \-e RABBITMQ_DEFAULT_PASSrabbit \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \--network mynet\-d \rabbitmq:3…...

sklearn基础教程

sklearn&#xff0c;全称为Scikit-learn&#xff0c;是一个基于Python的开源机器学习库&#xff0c;广泛用于数据挖掘和数据分析。它建立在NumPy、SciPy和matplotlib这些科学计算库之上&#xff0c;提供了简单而高效的工具来解决各种机器学习问题。 安装 首先&#xff0c;确保…...

173. 矩阵距离 acwing -多路BFS

原题链接&#xff1a;173. 矩阵距离 - AcWing题库 给定一个 N行 M 列的 01矩阵 A&#xff0c;A[i][j] 与 A[k][l]]之间的曼哈顿距离定义为&#xff1a; dist(i,j,k,l)|i−k||j−l|| 输出一个 N 行 M 列的整数矩阵 B&#xff0c;其中&#xff1a; B[i][j]min1≤x≤N,1≤y≤M,A…...