负载均衡+Tomcat集群+MySQL主从 实验

news/2025/9/22 16:40:59/文章来源:https://www.cnblogs.com/luowuyi/p/19105532

负载均衡+Tomcat集群+MySQL主从 实验

IP 功能 软件
192.168.25.216 网络入口,负载均衡 Nginx服务
192.168.25.26 应用服务器 Tomcat服务
192.168.25.27 应用服务器 Tomcat服务
192.168.25.28 应用服务器 Tomcat服务
192.168.25.31 数据库服务+中间件mycat MySQL主服务+中间件
192.168.25.32 数据库服务 MySQL从服务

实验步骤

#1.先搭建MySQL主从+中间价
·使用MySQL自动安装脚本在192.168.25.31和192.168.25.32安装MySQL
浏览器git官网里的脚本
·在局域网内直接下载安装脚本
wget 192.168.56.200/Software/mysql_install.sh
·执行脚本
bash mysql_install.sh
·添加环境变量
vim /etc/profileexport PATH=$PATH:/usr/local/mysql/bin
·重新加载环境
source /etc/profile
bash
·创建远程登陆账号
create user 'root'@'%' identified with mysql_native_password by 'root123';
grant all on *.* to 'root'@'%';
flush privileges;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#2.搭建31和32主从
·修改主服务器(192.168.25.31)的配置文件 /etc/my.cnf 
vim /etc/my.cnf[mysqld]
... # 省略
·主从复制-主机配置
·主服务器唯一ID
server-id=1
·启用二进制日志
log-bin=mysql-bin
·设置不要复制的数据库(可设置多个)
binlog-ignore-db=sys
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
#设置需要复制的数据库(可设置多个)
#binlog-do-db=test
#设置logbin格式
binlog_format=ROW
------------------------
·修改从服务器(192.168.25.32)的配置文件 /etc/my.cnf
vi /etc/my.cnf[mysqld]
...
·在之前配置下方编写
·主从复制-从机配置
·从服务器唯一ID
server-id=2
·启用中继日志
relay-log=mysql-relay
-------------------------
·分别重启两台服务器上的MySQL
/etc/init.d/mysqld restart·主数据库创建用户slave 并授权
·在主数据库端(192.168.25.31)
·登录mysql -uroot -p
·创建用户
create user 'slave'@'%' identified with mysql_native_password by 'root123';
·授权
grant replication slave on *.* to 'slave'@'%';
·刷新权限
flush privileges;·从数据库端验证主数据库slave用户是否可用
·在从数据库端(192.168.25.32)
·验证主数据库slave用户是否可用
mysql -uslave -proot123 -h192.168.25.31 -P3306
·验证成功后退出·配置主从节点信息
·在主数据库端(192.168.25.31)
·查询服务ID及Master状态
·登录
mysql -uroot -p·查询server_id是否可配置文件中一致
show variables like 'server_id';
·若不一致,可设置临时ID(重启失效)
set global server_id = 100;·查询Master状态,并记录 File(对应下一步中的master_log_file)
·Position (对应下一步中的master_log_pos)的值
show master status\G;
·输出File: mysql-bin.000001Position: 828Binlog_Do_DB: Binlog_Ignore_DB: sys,mysql,information_schema,performance_schema
Executed_Gtid_Set: 
·注意:执行完此步骤后退出主数据库
·防止再次操作导致 File 和 Position 的值发生变化·在从数据库端设置同步
·在从数据库端(192.168.25.32)·登录
mysql -uroot -p
·查询server_id是否可配置文件中一致
show variables like 'server_id';
·若不一致,可设置临时ID(重启失效)
set global server_id = 101;·设置主数据库参数(用上一步创建的slave用户及密码)
change master to 
master_host='192.168.25.31',
master_port=3306,
master_user='slave',
master_password='root123',
master_log_file='mysql-bin.000001',
master_log_pos=828;·开始同步
start slave;·查询Slave状态
show slave status\G;·查看是否配置成功
·查看参数 Slave_IO_Running 和 Slave_SQL_Running 是否都为yes,则证明配置成功。若为no,则需要查看对应的 Last_IO_Error 或 Last_SQL_Error 的异常值·若出现错误,则停止同步,重置后再次启动
·停止
stop slave;
·重置
reset slave;
·启动
start slave;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#3.在192.168.25.31上安装mycat中间件
#1.准备一台下载好MySQL的服务器
#安装JDK1.8
# CentOS7
yum -y install java-1.8.0-openjdk.x86_64
# 测试安装,显示java版本则为安装成功
java -version
#输出
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)#2.安装MyCAT2
#创建/usr/local/src
mkdir -p  /usr/local/src
#进入/usr/local/src目录
cd /usr/local/src
#在src目录里下载mycat和依赖环境
# 如果没有wget
# CentOS7安装wget
yum -y install wget
# 第三方下载
wget --no-check-certificate https://download.topunix.com/MySQL/Software-Cluster/Software-Mycat/Mycat2/mycat2-install-template-1.20.zip
wget --no-check-certificate https://download.topunix.com/MySQL/Software-Cluster/Software-Mycat/Mycat2/mycat2-1.21-release-jar-with-dependencies.jar
# 局域网下载(192.168.57.200)
wget http://192.168.57.200/Software/mycat2-install-template-1.21.zip
wget http://192.168.57.200/Software/mycat2-1.21-release-jar-with-dependencies.jar#3.下载完成后检查下载文件是否正确
[root@26_mycat src]# ls
mycat2-1.21-release-jar-with-dependencies.jar  mycat2-install-template-1.21.zip
#4.解压并移动到/usr/local目录下
# 没有解压缩工具先下载解压缩工具
yum -y install unzip
# 解压Mycat2
unzip mycat2-install-template-1.21.zip
#把解压完的mycat移动到/usr/local/mycat
mv mycat ../#5.把bin目录的文件加执行权限
cd /usr/local/mycat/
chmod +x  bin/*
#把所需的jar复制到mycat/lib目录
# mycat2-1.21-release-jar-with-dependencies.jar是MyCAT2依赖文件,缺失会导致MyCAT启动失败
cp /usr/local/src/mycat2-1.21-release-jar-with-dependencies.jar /usr/local/mycat/lib/
#移动完查看一下是否正确
#检查mycat结构是否正确
drwxr-xr-x 2 root root 4096 3月   5 2021 bin
drwxr-xr-x 9 root root  275 3月   5 2021 conf
drwxr-xr-x 2 root root 4096 8月  19 11:15 lib
drwxr-xr-x 2 root root    6 3月   5 2021 logs
#bin 执行命令的目录
#conf 配置文件
#lib 依赖包
#logs 日志包#6.配置系统环境变量,让我们可以在任意位置执行mycat命令
#先查到mycat里bin目录的位置
cd bin/
pwd
/usr/local/mycat/bin
#编辑环境变量
vim /etc/profile
#在末尾添加
#export PATH=$PATH:/usr/local/mycat/bin
export MYCAT_PATH=/usr/local/mycat
export MYSQL_PATH=/usr/local/mysql
export PATH="$MYSQL_PATH/bin:$MYCAT_PATH/bin:$PATH"#加载环境变量
source /etc/profile#7.启动一个3306的MySQL#启动mysql服务
service mysqld start
# 能够连接而上mysql
mysql -uroot -proot123 #8.配置物理库地址
#打开并修改配置文件
vim /usr/local/mycat/conf/datasources/prototypeDs.datasource.json
#修改成
{"dbType": "mysql","idleTimeout": 60000,"initSqls": [],"initSqlsGetConnection": true,"instanceType": "READ_WRITE","maxCon": 1000,"maxConnectTimeout": 3000,"maxRetryCount": 5,"minCon": 1,"name": "prototypeDs","password": "root123","type": "JDBC","url": "jdbc:mysql://localhost:3306?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8","user": "root","weight": 0
}#9.启动MyCAT
#设置了环境变量,可在任意位置执行mycat命令
cd /usr/local/mycat/bin./mycat start 启动
./mycat stop 停止
./mycat console 前台运行
./mycat install 添加到系统自动启动
./mycat remove 取消随系统自动启动
./mycat restart 重启
./mycat pause 暂停
./mycat status 查看启动状态
#启动mycat
mycat start#10.查看logs/wrapper.log文档看有无错误
cat /usr/local/mycat/logs/wrapper.log
#正确结果
STATUS | wrapper  | 2025/08/19 11:50:25 | --> Wrapper Started as Daemon
STATUS | wrapper  | 2025/08/19 11:50:25 | Launching a JVM...
INFO   | jvm 1    | 2025/08/19 11:50:25 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
INFO   | jvm 1    | 2025/08/19 11:50:25 |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
INFO   | jvm 1    | 2025/08/19 11:50:25 | 
INFO   | jvm 1    | 2025/08/19 11:50:26 | path:/usr/local/mycat/./conf
INFO   | jvm 1    | 2025/08/19 11:50:26 | 2025-08-19 11:50:26,214[INFO]io.mycat.MycatCore.newMycatServer:213start VertxMycatServer
INFO   | jvm 1    | 2025/08/19 11:50:26 | 2025-08-19 11:50:26,571[INFO]com.alibaba.druid.pool.DruidDataSource.init:990{dataSource-1} inited
INFO   | jvm 1    | 2025/08/19 11:50:26 | 2025-08-19 11:50:26,828[INFO]io.mycat.replica.heartbeat.HeartbeatFlow.sendDataSourceStatus:71prototypeDs heartStatus DatasourceStatus(status=OK_STATUS, isSlaveBehindMaster=false, dbSynStatus=DB_SYN_NORMAL, master=true)
INFO   | jvm 1    | 2025/08/19 11:50:27 | 2025-08-19 11:50:27,760[INFO]io.mycat.vertx.VertxMycatServer.lambda$start$1:120Mycat Vertx server 5ace8c13-1dad-4e02-acac-6615ae3140a3 started up.
INFO   | jvm 1    | 2025/08/19 11:50:27 | 2025-08-19 11:50:27,761[INFO]io.mycat.vertx.VertxMycatServer.lambda$start$1:120Mycat Vertx server d93fb9b5-91b0-42c6-866a-62047715eed6 started up.
INFO   | jvm 1    | 2025/08/19 11:50:27 | 2025-08-19 11:50:27,770[INFO]io.mycat.vertx.VertxMycatServer.lambda$start$1:120Mycat Vertx server 59488811-db7f-4dbb-a8da-bcb6da18a9e4 started up.
INFO   | jvm 1    | 2025/08/19 11:50:27 | 2025-08-19 11:50:27,771[INFO]io.mycat.vertx.VertxMycatServer.lambda$start$1:120Mycat Vertx server 5e34af6f-0c85-403d-9f6e-746ce1faa525 started up.
INFO   | jvm 1    | 2025/08/19 11:50:27 | 2025-08-19 11:50:27,771[INFO]io.mycat.vertx.VertxMycatServer.lambda$start$1:120Mycat Vertx server dbf9feeb-3767-4c6f-b351-f5b48a3a8f81 started up.
INFO   | jvm 1    | 2025/08/19 11:50:27 | 2025-08-19 11:50:27,772[INFO]io.mycat.vertx.VertxMycatServer.lambda$start$1:120Mycat Vertx server f89e3d87-c1eb-4f00-980e-11f11f3d6524 started up.
INFO   | jvm 1    | 2025/08/19 11:50:27 | 2025-08-19 11:50:27,773[INFO]io.mycat.vertx.VertxMycatServer.lambda$start$1:120Mycat Vertx server a60a85f5-dc07-49b3-9822-a56e68bf91af started up.
INFO   | jvm 1    | 2025/08/19 11:50:27 | 2025-08-19 11:50:27,790[INFO]io.mycat.vertx.VertxMycatServer.lambda$start$1:120Mycat Vertx server 2213c4b3-a110-4328-8ba2-252170fa2c1a started up.#11.连接MyCAT
MyCAT的默认用户是:root
初始密码是:123456
端口号是:8066
#使用MySQL默认客户端或者mycli命令行登陆MyCAT
mysql -uroot -p123456 -P8066 -h127.0.0.1
# 或者
mycli -uroot -P8066 -h"127.0.0.1"
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#4.搭建mycat一主一从 
#两台服务器搭建主从连接 两台服务器都需要创建远程连接账号
#一台安装MyCAT  mysql -uroot -proot123 -P8066 -h127.0.0.1 -A db1【新建的库名】#在mycat服务器上操作
#创建数据源
#-- 重置配置
/*+ mycat:resetConfig{} */ 【可选】#1.添加读写的数据源  【添加主服务器】
/*+ mycat:createDataSource
{"dbType": "mysql","idleTimeout": 60000,"initSqls": [],"initSqlsGetConnection": true,"instanceType": "READ_WRITE","maxCon": 1000,"maxConnectTimeout": 3000,"maxRetryCount": 5,"minCon": 1,"name": "m1","password": "root123","type": "JDBC","url": "jdbc:mysql://192.168.25.31:3306?useUnicode=true&serverTimezone=UTC&characterEncoding=UTF-8","user": "root","weight": 0
}
*/;#2.添加读的数据源 【添加从服务器】
/*+ mycat:createDataSource
{"dbType": "mysql","idleTimeout": 60000,"initSqls": [],"initSqlsGetConnection": true,"instanceType": "READ","maxCon": 1000,"maxConnectTimeout": 3000,"maxRetryCount": 5,"minCon": 1,"name": "m1s1","password": "root123","type": "JDBC","url": "jdbc:mysql://192.168.25.32:3306?useUnicode=true&serverTimezone=UTC&characterEncoding=UTF-8","user": "root","weight": 0
}
*/;# 查询数据源 是否添加成功
/*+ mycat:showDataSources{} */\G;#3.创建集群
/*! mycat:createCluster{"clusterType":"MASTER_SLAVE","heartbeat":{"heartbeatTimeout":1000,"maxRetry":3,"minSwitchTimeInterval":300,"slaveThreshold":0},"masters":["m1"],"maxCon":2000,"name":"c1","readBalanceType":"BALANCE_ALL","replicas":["m1s1"],"switchType":"SWITCH"
} */;#查询集群是否创建正确
/*! mycat:showClusters{} */\G;#4. 创建逻辑库 #在mycat上创建逻辑库 ,主从数据库上都应该存在
CREATE DATABASE shop DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#修改逻辑库的数据源
vim /usr/local/mycat/conf/schemas/shop.schema.json
## 在里面添加集群的名称,作用是让该集群生成并管理这个库的物理库
"targetName":"c1"
#重启MyCAT:
mycat restart#5.测试读写分离是否成功(在MyCAT里面测试)
#在MyCAT里面的shop库里创建一个products表:
CREATE TABLE products(  id INT PRIMARY KEY,  name VARCHAR(200),  price decimal);
#检查主从数据库内是否存在我们创建的表
#通过注释生成物理库和物理表:
#如果物理表不存在,在 MyCAT2 能正常启动的情况下,根据当前配置自动创建分片表,全局表和物理表:
/*+ mycat:repairPhysicalTable{} */;
#查看后端物理库:发现物理库和物理表都生成了。
#在MyCAT里面向products表添加一条数据:
INSERT INTO products(id, name, price) VALUES(1, "XIAOMING", 199.99);
#查看主从库里的先对应的表中内容有没有添加上------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#5.安装部署三台Tomcat并绑定上同一个ProxySQL的数据库
192.168.25.26/192.168.25.27/192.168.25.28
#·在linux上安装jdk 安装到/usr/loacl/jdk
·先创建/usr/local/jdk 目录
cd /usr/local
mkdir jdk
cd jdk
·在windows终端中将提前下载好的jdk-8u451-linux-x64.tar.gz 安装包 发送到Linux 的/usr/loacl/jdk 目录中
scp E:\lwy用户\下载\JDK-Tomcat-Maven\jdk-8u451-linux-x64.tar.gz root@192.168.25.26:/usr/local/jdk
·然后在jdk目录中解压
tar -xvf jdk-8u451-linux-x64.tar.gz
·解压好后修改一下文件名
mv jdk1.8.0_451/ jdk1.8
·查看jdk1.8的完整路径
cd jdk1.8
pwd
·配置 jdk 环境变量
vim /etc/profile在最后一行后面添加
#set java enviroment
JAVA_HOME=/usr/local/jdk/jdk1.8 
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH·保存退出,并重置环境
source /etc/profile
·查看版本,输出是否正确
java -version#·在linux上 Centos7 上安装tomcat 安装到/usr/loacl/tomcat
·先创建/usr/local/tomcat 目录
cd /usr/local
mkdir tomcat
cd tomcat
·在windows终端中将提前下载好的apache-tomcat-9.0.106.tar.gz 安装包 发送到Linux 的/usr/loacl/tomcat 目录中
scp E:\lwy用户\下载\JDK-Tomcat-Maven\apache-tomcat-9.0.106.tar.gz root@192.168.25.26:/usr/local/tomcat
·在tomcat目录中解压
tar -xvf apache-tomcat-9.0.106.tar.gz
·解压好后修改一下文件名
mv apache-tomcat-9.0.106 tomcat9.0.106
·进入 tomcat9.0.106 的 bin 目录,输入启动指令
cd tomcat9.0.106/bin
执行 ./startup.sh 
·测试是否启动成功,在浏览器中输入:192.168.25.211:8080
查看是否进入tomcat 9.0.106 页面
·在windows终端中将提前编译好的starter-tomcat-5.0.war 发送到Linux 的/usr/local/tomcat/tomcat9.0.106/webapps 目录中
scp F:\school_apps\jpress\starter-tomcat\target\starter-tomcat-5.0.war root@192.168.25.26:/root
·把webapps里的原有文件删除
cd /usr/local/tomcat/tomcat9.0.106/webapps
rm -rf *
·把我们上传的war改名成ROOT.war
cd
mv starter-tomcat-5.0.war ROOT.war
·在重复到wep目录
cd /usr/local/tomcat/tomcat9.0.106/webapps
cp /root/ROOT.war .
·重启Tomcat,测试是否启动成功,在浏览器中输入:192.168.25.26:8080·进去注册页面后,我们三台Tomcat的注册页面选择同一个mycat的信息
库名 jpress
账号 root
密码 123456
ip 192.168.25.31 (安装mycat的IP)
端口 8066·连接好后选择创建同一个账号#·在linux上 UBuntu 上安装tomcat
·使用apt 下载 tomcat
apt -y install tomcat9         
·查找webapps的文件路径
find / -name webapps
/var/lib/tomcat9/webapps
·修改配置文件
vim /etc/tomcat9/server.xml修改port端口号为9527
<Connector port="9527" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />
·保存退出,重启tomcat9
systemctl restart tomcat9·在windows终端中将提前编译好的starter-tomcat-5.0.war 发送到Linux 的 /var/lib/tomcat9/webapps目录中scp F:\school_apps\jpress\starter-tomcat\target\starter-tomcat-5.0.war root@192.168.25.211:/var/lib/tomcat9/webapps
·把webapps中的原有文件删除,只保留上传的.war文件
·去浏览器测试搜索 192.168.25.211:9527 是否能打开JPress页面·进去注册页面后,我们三台Tomcat的注册页面选择同一个mycat的信息
库名 jpress
账号 root
密码 123456
ip 192.168.25.31 (安装mycat的IP)
端口 8066·连接好后选择创建同一个账号------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#6.安装部署nginx 连接tomcat集群 实现反向代理,负载均衡
·在192.168.25.216 上安装nginx
#乌班图安装
编译安装
## 安装依赖
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
## 下载源码
wget http://192.168.57.200/Software/nginx-1.26.2.tar.gz
#wget http://nginx.org/download/nginx-latest.tar.gz
## 解压
tar -zxvf nginx-*.tar.gz
## 进入解压后的Nginx源码目录,执行配置脚本,并指定安装目录和其他选项
./configure --prefix=/usr/local/nginx --with-http_ssl_module
## 编译并安装
make && sudo make installvim /usr/lib/systemd/system/nginx.service[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target#重新启动加载配置
systemctl daemon-reload 
systemctl reload nginx·安装好后修改配置文件 
cd /usr/local/nginx/conf
vim nginx.conf#在http{ }内添加以下内容
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for" ''$upstream_addr';access_log  /var/log/nginx/access.log  main;upstream web1 {server 192.168.25.26:8080;server 192.168.25.27:8080;server 192.168.25.28:8080;}server {listen       80;server_name  192.168.25.216;location / {proxy_pass http://web1;}location = /50x.html {root   html;}
}·保存退出·创建nginxlog的日志文件,方便我们查看nginx代理的哪一台tomcat
mkdir -p /var/log/nginx·检查配置文件
/usr/local/nginx/sbin/nginx -t·重启nginx
systemctl restart nginx#实时查看日志,在浏览器搜索代理服务器的ip 192.168.25.216 查看是否代理成功,并且是哪个后台端口
tail -f /var/log/nginx/access.log

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

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

相关文章

mysql表新增字段,基本语法

在 MySQL 中,为已存在的表新增字段可以使用 ALTER TABLE 语句,语法如下: sql ALTER TABLE 表名 ADD COLUMN 字段名 数据类型 [约束条件] [位置]; 基本参数说明: 表名:要添加字段的目标表名称 字段名:新增字段的名…

2025年运营商数据分类分级最佳实践、案例与方案

2025年运营商数据分类分级最佳实践、案例与方案在5G与云网融合并进的环境下,运营商要在《数据安全法》与《个人信息保护法》(PIPL)框架内,把分散且高敏感度的数据纳入全生命周期治理。**最小可行路径**是以“数据分…

微波雷达模块WT4101重新定义饮水机茶吧机等智能家居

在智能家居浪潮席卷而来的今天,我们身边那些看似平凡的设备正在悄然发生着翻天覆地的变化。今天,让我们将目光投向一个日常生活中最不起眼却又不可或缺的伙伴——饮水机。这个默默陪伴我们多年的老朋友,正在经历一场…

硝基甲苯之魇

题目链接:https://ac.nowcoder.com/acm/contest/95323/K 题意: 给定一个长度为n的数组,求所有[l,r]区间xor等于区间gcd的个数(l<r) 思路: 不妨固定左端点l,a[l]=x,发现右端点在扩增的时候,区间gcd最多变化lo…

重庆网站seo公司厦门专业做优化的公司

1.消息丢失 有这么一个场景&#xff0c;就是订单支付完成之后&#xff0c;订单系统会进行发送消息给RocketMQ集群&#xff0c;下游会有积分系统进行监听这个消息&#xff0c;进行消费然后给用户发放积分。在下面的这个场景中&#xff0c;通过查询日志发现了订单系统发送订单支付…

威联通怎么建设网站兰州企业网站

在当今数字化时代&#xff0c;网站被攻击已经成为常态&#xff0c;网络威胁愈演愈烈。这些攻击不仅威胁到企业的安全&#xff0c;还可能导致严重的商业危机。本文将探讨为什么网络流量攻击变得如此普遍和容易&#xff0c;并分析未来可能引发的商业危机。 ​ 网络流量攻击的普遍…

昆明网站推广专员装饰网站设计模板下载

很多人认为&#xff0c;给宝宝喂奶会导致胸下垂。有些爱美的妈妈&#xff0c;甚至在宝宝出生6个月后就着急断奶。那么&#xff0c;喂奶真的会导致胸下垂么&#xff1f;给大家讲两个真实的调查结果哈~2004年的一次针对496名新妈妈的调查结果显示&#xff0c;有75%的母乳喂养母亲…

网站固定头部河南最新任命12个厅级

目录 1.RTthread如何引入webclient和cjson来编写自己的模块代码 2.SecureCRT的安装与激活 3.static与const的区别 4.安装VScode 1.RTthread如何引入webclient和cjson来编写自己的模块代码 以我自己的工程为例&#xff1a; 首先将新引入的模块在applicatons下新建cpeinfo文件…

成都网站建设哪家专业而且比较便宜青岛市建设监督管理局网站

docker save用于导出镜像到文件&#xff0c;包含镜像元数据和历史信息&#xff1b;docker export用于将当前容器状态导出至文件&#xff0c;类似快照&#xff0c;所以不包含元数据及历史信息&#xff0c;体积更小&#xff0c;此外从容器快照导入时也可以重新指定标签和元数据信…

day14-Trae之一键换脸APP开发04

今日内容 1 Python 对接Coze工作流 # 1 之前使用coze做了一个工作流-换脸-当时只能发布到,集成到智能体中---》发布到coze商店---》链接地址---》把链接地址发送给其他人使用-我想对这个功能收费?-我想做一款app/微信…

Linux服务器单网卡如何配置多个的IP地址?

在 Linux 服务器上,即使只有一个网卡,也可以为其配置多个 IP 地址。这种配置方式通常用于支持多站点部署、虚拟主机、站群或其他需要多个 IP 地址的场景。以下是详细的配置方法,包括永久性和临时性配置的步骤。1. 配…

面试常问问题——索引是不是越多越好

绝对不是越多越好 索引过多的主要弊端: 1、降低写操作性能(增、删、改)每次对表进行 INSERT、UPDATE、DELETE 操作时,数据库不仅需要修改表中的数据,还需要更新这个表上的每一个索引 来保持数据一致性。 2、占用大…

day38大模型程序开发-GraphRAG实操

三、GraphRAG快速部署与调用方法详解 1.GraphRAG安装注,以下实验环境均为Ubuntu系统,以更好的模拟真实企业应用场景,其中大多数方法也可以直接迁移至Windows操作系统中。下面我们的操作以AutoDL平台上进行!Step 1.…

关于串口通信(232、485、422)和常见问题,一篇文章就给你说清楚~

关于串口通信(232、485、422)和常见问题,一篇文章就给你说清楚~ DB9公头母头接口定义 1、RS-232端(DB9母头/孔型)引脚定义 引脚序号 2 3 5 1、4、6 7、8 信号定义 TXD RXD 地 内部相连 内部相连 注…

东莞哪里的网站建设效果好其中最重要的网络设计结果

什么是接口隔离原则&#xff08;Interface Segregation Principle&#xff09; 定义&#xff1a;客户端不应该依赖它不需要的接口&#xff1b;一个类对另一个类的依赖应该建立在最小的接口上。概括的说就是&#xff1a;建立单一接口&#xff0c;不要建立臃肿庞大的接口。&…

怎么制作手机网页湘潭seo 推广快湘潭磐石网络

给你一根长度为 n 的绳子&#xff0c;请把绳子剪成整数长度的 m 段&#xff08;m、n都是整数&#xff0c;n>1并且m>1&#xff09;&#xff0c;每段绳子的长度记为 k[0],k[1]...k[m - 1] 。请问 k[0]*k[1]*...*k[m - 1] 可能的最大乘积是多少&#xff1f;例如&#xff0c;…

网站怎么做话术做vip的网站好做吗

1、AIDE的简单介绍AIDE通过扫描一台&#xff08;未被篡改&#xff09;的Linux服务器的文件系统来构建文件属性数据库&#xff0c;以后将服务器文件属性与数据库中的进行校对&#xff0c;然后在服务器运行时对被修改的索引了的文件发出警告。出于这个原因&#xff0c;AIDE必须在…

有个网站叫设计什么网站建设运营计划书

题目 在一个 2 x 3 的板上&#xff08;board&#xff09;有 5 块砖瓦&#xff0c;用数字 1~5 来表示, 以及一块空缺用 0 来表示. 一次移动定义为选择 0 与一个相邻的数字&#xff08;上下左右&#xff09;进行交换. 最终当板 board 的结果是 [[1,2,3],[4,5,0]] 谜板被解开。…

网站设计的目的和任务深圳建站哪家专业

目录 如何引入第三方库第三方库与当前项目Bean重复自定义自动配置类 自动配置类通常位于Spring Boot的自动配置模块中&#xff0c;并且被标记为 Configuration类。这些类使用 Conditional注解来检查某些条件是否满足&#xff0c;如果满足&#xff0c;则创建和配置相关的bean。…

有哪些网站适合大学生做兼职网站开发人员是干什么的

题目链接 BZOJ&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id2655 Solution 设\(f_i\)表示长度为\(i\)的序列个数&#xff0c;\(g_{i,x}\)表示含有\(x\)的序列个数&#xff0c;注意这里不考虑顺序&#xff0c;顺序答案直接乘\(n!\)就好了。 首先很显然可以得到…