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

MeterSphere v2.10.X-lts 双节点HA部署方案

一、MeterSphere高可用部署架构及服务器配置

1.1 服务器信息

序号应用名称操作系统要求配置要求描述
1负载均衡器CentOS 7.X /RedHat 7.X2C,4G,200GB部署Nginx,实现负载路由。 部署NFS服务器。
2MeterSphere应用节点1CentOS 7.X /RedHat 7.X8C,16GB,200GB部署MeterSphere应用
3MeterSphere应用节点2CentOS 7.X /RedHat 7.X8C,16GB,200GB部署MeterSphere应用
4MySQL Master节点CentOS 7.X /RedHat 7.X8C,16GB,200GB部署MySQL Master
5MySQL Slave节点CentOS 7.X /RedHat 7.X8C,16GB,200GB部署MySQL Slave

1.2 部署架构图

HA架构.jpg

二、Mysql8数据库主从搭建

2.1 下载安装包

下载地址:https://downloads.mysql.com/archives/community/

image.png

2.2 解压安装

  1. 下载好之后,上传服务器进行解压。
tar xvf mysql-8.0.32-1.el7.x86_64.rpm-bundle.tar
  1. 顺序安装rpm
rpm -ivh mysql-community-common-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.32-1.el7.x86_64.rpm

注意:如果在安装 mysql-community-libs-8.0.32-1.el7.x86_64.rpm 的时候出现下面错误,说明已经安装了mariadb相关依赖,需要卸载。可以执行:yum remove mysql-libs ,清除之前的依赖即可。然后重新执行 rpm -ivh mysql-community-libs-8.0.32-1.el7.x86_64.rpm 即可。
image.png

  1. 初始化my.cnf

特别注意: 先配置my.cnf,再启动。 如果已经启动了,没办法初始化大小写的问题了,这个时候可以删除重新初始化,操作如下:(正常配置可以忽略)

如果你不在意数据的话直接删除数据
停止MySQL
systemctl stop mysqld
删除 MySQL的数据(恢复到初始化之前)
rm -rf /var/lib/mysql
[mysqld]
datadir=/var/lib/mysqldefault-storage-engine=INNODB
character_set_server=utf8mb4
lower_case_table_names=1   # 不区分大小写
performance_schema=off
table_open_cache=128
transaction_isolation=READ-COMMITTED
max_connections=1000
max_connect_errors=6000
max_allowed_packet=64M
innodb_file_per_table=1
innodb_buffer_pool_size=512M
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout=1800character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONskip-name-resolve[mysql]
default-character-set=utf8mb4[mysql.server]
default-character-set=utf8mb
  1. 启动
# 启动 
systemctl start mysqld
# 停止
systemctl stop mysqld
# 状态
systemctl status mysqld
# 重启
systemctl restart msyqld
  1. 修改密码
# 查看密码
sudo grep 'temporary password' /var/log/mysqld.log  
# 如果上面查不到密码,可以执行下面的查看
sudo grep 'temporary password' /var/log/messages  
# 登录
mysql -uroot -p 密码
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password123@mysql';
# 修改root作用域
update mysql.user set host = '%' where user = 'root';
# 刷新
flush privileges;
# 重启mysql
systemctl restart mysqld 

2.3 主从配置

2.3.1 主库配置

  1. 修改 /etc/my.cnf
[mysqld]
datadir=/var/lib/mysqldefault-storage-engine=INNODB
character_set_server=utf8mb4
lower_case_table_names=1 # 不区分大小写
performance_schema=off
table_open_cache=128
transaction_isolation=READ-COMMITTED
max_connections=1000
max_connect_errors=6000
max_allowed_packet=64M
innodb_file_per_table=1
innodb_buffer_pool_size=512M
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout=1800character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONskip-name-resolve# 主从复制-主机配置
# 主服务器唯一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=metersphere
# 为每个session分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1M
# 主从复制的格式(mixed,statement,row,默认格式是statement。建议是设置为row,主从复制时数据更加能够统一)
binlog_format=row
# 配置二进制日志自动删除/过期时间,单位秒,默认值为2592000,即30天;8.0.3版本之前使用expire_logs_days,单位天数,默认值为0,表示不自动
删除。
binlog_expire_logs_seconds=2592000[mysql]
default-character-set=utf8mb4[mysql.server]
default-character-set=utf8mb
  1. 重启MySQL
# 启动 
systemctl start mysqld
# 停止
systemctl stop mysqld
# 状态
systemctl status mysqld
# 重启
systemctl restart msyqld
  1. 创建主从复制用户
#创建主从复制用户
CREATE USER 'clusteruser'@'%' IDENTIFIED WITH mysql_native_password BY 'Calong@2015';
# 授权
GRANT REPLICATION SLAVE ON *.* TO 'clusteruser'@'%';
# 刷新
FLUSH PRIVILEGES;

2.3.2 从库配置

  1. 配置my.cnf
[mysqld]
datadir=/var/lib/mysqldefault-storage-engine=INNODB
character_set_server=utf8mb4
lower_case_table_names=1
performance_schema=off
table_open_cache=128
transaction_isolation=READ-COMMITTED
max_connections=1000
max_connect_errors=6000
max_allowed_packet=64M
innodb_file_per_table=1
innodb_buffer_pool_size=512M
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout=1800character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONskip-name-resolve# 主从复制-主机配置
# 从服务器唯一ID
server-id=2
# 需要主从复制的数据库 ,如多个则重复配置
replicate-do-db=metersphere
# 复制过滤:也就是指定哪个数据库不用同步(mysql库一般不同步) ,如多个则重复配置
binlog-ignore-db=mysql
# 为每个session分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1M
# 主从复制的格式(mixed,statement,row,默认格式是statement。建议是设置为row,主从复制时数据更加能够统一)
binlog_format=row
# relay_log配置中继日志,默认采用 主机名-relay-bin 的方式保存日志文件
relay_log=replicas-mysql-relay-bin
# log_replica_updates表示slave是否将复制事件写进自己的二进制日志,默认值ON开启;8.0.26版本之前使用log_slave_updates
log_replica_updates=ON
# 防止改变数据(只读操作,除了特殊的线程)
read_only=ON[mysql]
default-character-set=utf8mb4[mysql.server]
default-character-set=utf8mb
  1. 执行命令
CHANGE REPLICATION SOURCE TO SOURCE_HOST='10.1.12.13',SOURCE_PORT=3306,SOURCE_USER='clusteruser',SOURCE_PASSWORD='Calong@2015',SOURCE_LOG_FILE='mysql-bin.000003',SOURCE_LOG_POS=863;MASTER_HOST/SOURCE_HOST:主数据库的主机ip
MASTER_PORT/SOURCE_PORT:主数据库的端口,不设置则默认是3306
MASTER_USER/SOURCE_USER:主数据库被授予同步复制权限的用户名
MASTER_PASSWORD/SOURCE_PASSWORD:对应的用户密码
MASTER_LOG_FILE/SOURCE_LOG_FILE:在主数据库执行命令show master status 查询到的二进制日志文件名称
MASTER_LOG_POS/SOURCE_LOG_POS:在主数据库执行命令show master status 查询到的位置 Position的值
  1. 开启从节点
# 查看从节点状态
show slave status \G;
# 启动
start slvae;
# 停止
stop slave;
# 重置
reset slave;
  1. 查看状态

image.png

2.4 验证

  1. 主库添加一条数据,查看从库中是否同步,如果有,说明成功,否则失败。
  2. 主库执行sql语句
# 主从库执行前查看数量
select  count(*) from workspace;# 主库执行
INSERT INTO workspace ( `id`, `name`, `description`, `create_time`, `update_time`, `create_user` ) values ( "1", "test", "test", unix_timestamp(now())*1000, unix_timestamp(now())*1000, NULL );# 主从库查看
select id,name from workspace  where id='1';

主库/从库执行前:
image.png
主库执行后:
image.png
image.png
以上验证成功,即为搭建没问题。

三、Nginx 搭建

3.1 下载nginx安装包

下载地址:https://nginx.org/en/download.html
image.png

3.2 解压Nginx并安装

  1. 安装nginx
1. 解压nginx安装包
tar -zxvf nginx-1.24.0.tar.gz2. 创建文件夹
mkdir /usr/local/nginx3. 安装依赖
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel4.解压
cd nginx-1.24.0/
./configure --prefix=/usr/local/nginx5. 安装
make && make install6. 启动
cd /usr/local/nginx/sbin
./nginx 7.检查语法错误
./nginx -t 8.重启
./nginx -s reload 9.停止
./nginx -s stop 10. 验证,默认是80端口,直接访问ip,出现nginx的html页面,说明部署成功
  1. 修改配置信息
1. 修改配置信息,可以直接覆盖原来的。目录:/usr/local/nginx/conf/nginx.conf
#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;include /usr/local/nginx/conf/conf.d/*.conf;#gzip  on;}2. 创建配置目录
mkdir /usr/local/nginx/conf/conf.d3. 创建default.conf并编辑以下内容>>
upstream servers.com {ip_hash;server 10.1.12.13:8081 weight=1 fail_timeout=10s max_fails=1; # 主节点1server 10.1.14.202:8081 weight=1 fail_timeout=10s max_fails=1; # 主节点2
}server {listen       80;server_name  localhost;location / {proxy_pass http://servers.com;proxy_set_header Host               $host:$server_port;proxy_set_header X-Real-IP          $remote_addr;proxy_set_header X-Forwarded-Proto  $scheme;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
<<
  1. 效果

image.png

四、安装MeterSphere服务

官网地址:https://metersphere.io/docs/v2.x/installation/offline_installation/

  1. 安装包地址:https://community.fit2cloud.com/#/products/metersphere/downloads
  2. 解压安装, 默认安装/opt 目录
tar -zxvf metersphere-offline-installer-v2.10.2-lts.tar.gz
  1. 修改配置信息
cd metersphere-offline-installer-v2.10.2-lts
vi install.conf

image.png

  1. 配置好之前搭建好MySQL的主节点信息,然后执行脚本安装
bash install.sh
  1. 查看服务状态
msctl status 

image.png

  1. 另外一个节点同样的操作,参考上面安装即可。

五、NFS 搭建

搭建NFS是为了文件共享,使两个MeterSphere节点,文件同步。

5.1 服务端搭建

1. 在nginx节点安装NFS服务器
yum -y install nfs-utils2. 安装nfs+rpc
yum -y install nfs-utils rpcbind3. 验证nfs安装
rpm -qa nfs-utils

image.png

4. 服务端创建共享文件目录(目录可以自定义)
mkdir -p /data/
chmod 666 /data/因为我们要共享的是/opt/metersphere/data目录,所以需要把其文件夹给复制过来。
1. 直接去到部署metersphere的服务器,把/opt/meterspere/data 给打包
tar -czvf data.tar.gz /opt/metersphere/data2.然后传到部署nfs服务端/data目录下
最终效果如下:[root@ms002 data]# pwd
/data
[root@ms002 data]# ls
api-folder  body  jar  jmeter  kafka  minio  mysql  node  prometheus  redis
[root@ms002 data]#5.修改nfs的配置 /etc/exports/data/  xx.xx.xx.xx(rw,sync,insecure,no_subtree_check,no_root_squash) xx.xx.xx.xx(rw,sync,insecure,no_subtree_check,no_root_squash)# xx.xx.xx.xx 为客户端ip
#
#权限说明:
#rw   read-write,可读写;
#sync:文件同时写入硬盘和内存;
#async:文件暂存于内存,而不是直接写入内存;
#no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
#root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
#all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
#anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
#anongid:匿名用户的GID值。
#insecure:当mount监听端口大于1024时需要使用此参数

image.png

6. 重载配置数据
exportfs -rv7. 启动rpc
systemctl start rpcbind8.设置rpc开机启动
systemctl enable rpcbind9.检查RPC
rpcinfo -p localhost

image.png

10.启动 NFS 服务
systemctl start nfs 
systemctl enable nfs

5.2 客户端搭建(也就是安装MeterSphere节点的服务器)

1. 下载客户端
yum -y install nfs-utils2. 校验服务端共享目录(判断网络是否通)
showmount -e xx.xx.xx.xx   # xx.xx.xx.xx为服务端IP,有返回信息说明成功3. 挂载共享目录mount xx.xx.xx.xx:/data /opt/metersphere/data  #xx.xx.xx.xx 服务端ip.4. 至此直接在客户端或者服务端创建文件,看是否有同步即可。

注意:两个部署MeterSphere的节点都需要搭建。

六、验证

  1. 访问nginx节点,可以正常显示

image.png

  1. 因为使用nginx负载均衡,所以停掉一个服务,再进行访问。

image.png
image.png

七、注意事项

  1. 在安装MySQL的时候,有特别注意的地方需要仔细看下。
  2. 搭建双节点的MeterSphere应用所连接的中间件(kafka,redis,minio等)都需要连接同一个。
  3. v1和v2.3以前的版本需要NFS,v2.3开始使用MinIO对象存储,已经不再需要NFS了,但从v2.3以前版本升级上来的因为历史数据的原因还需要NFS。
  4. 如果需要保证相关中间件的可用性,可以自行独立部署。
  5. 以上就是完整的MeterSphere双活架构的部署流程,如有问题,欢迎留言。

相关文章:

MeterSphere v2.10.X-lts 双节点HA部署方案

一、MeterSphere高可用部署架构及服务器配置 1.1 服务器信息 序号应用名称操作系统要求配置要求描述1负载均衡器CentOS 7.X /RedHat 7.X2C,4G&#xff0c;200GB部署Nginx&#xff0c;实现负载路由。 部署NFS服务器。2MeterSphere应用节点1CentOS 7.X /RedHat 7.X8C,16GB,200G…...

Java进阶篇--网络编程

​​​​​​​ 目录 计算机网络体系结构 什么是网络协议&#xff1f; 为什么要对网络协议分层&#xff1f; 网络通信协议 TCP/IP 协议族 应用层 运输层 网络层 数据链路层 物理层 TCP/IP 协议族 TCP的三次握手四次挥手 TCP报文的头部结构 三次握手 四次挥手 …...

PyTorch入门之【CNN】

参考&#xff1a;https://www.bilibili.com/video/BV1114y1d79e/?spm_id_from333.999.0.0&vd_source98d31d5c9db8c0021988f2c2c25a9620 书接上回的MLP故本章就不详细解释了 目录 traintest train import torch from torchvision.transforms import ToTensor from torchvi…...

马斯洛需求层次模型之安全需求之云安全浅谈

在互联网云服务领域&#xff0c;安全需求是用户首要考虑的因素之一。用户希望在将数据和信息托付给云服务提供商时&#xff0c;这些数据和信息能够得到充分的保护&#xff0c;避免遭受未经授权的访问、泄露或破坏。这种安全需求的满足&#xff0c;对于用户来说是至关重要的&…...

Pikachu靶场——远程命令执行漏洞(RCE)

文章目录 1. RCE1.1 exec "ping"1.1.1 源代码分析1.1.2 漏洞防御 1.2 exec "eval"1.2.1 源代码分析1.2.2 漏洞防御 1.3 RCE 漏洞防御 1. RCE RCE(remote command/code execute)概述&#xff1a; RCE漏洞&#xff0c;可以让攻击者直接向后台服务器远程注入…...

【WSN】无线传感器网络 X-Y 坐标到图形视图和位字符串前缀嵌入方法研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Linux定时任务

文章目录 前言设置定时任务流程定时规则例子 终止定时任务列出当前的定时任务重启任务调度 前言 在Linux系统中有时侯需要周期性的自动执行一些命令&#xff0c;这时候Linux定时任务就派上用场了 设置定时任务流程 进入定时任务的编辑模式 crontab -e编辑定时任务&#xff…...

【Overload游戏引擎分析】画场景网格的Shader

Overload引擎地址&#xff1a; GitHub - adriengivry/Overload: 3D Game engine with editor 一、栅格绘制基本原理 Overload Editor启动之后&#xff0c;场景视图中有栅格线&#xff0c;这个在很多软件中都有。刚开始我猜测它应该是通过绘制线实现的。阅读代码发现&#xff0…...

【JavaEE】多线程进阶(一)饿汉模式和懒汉模式

多线程进阶&#xff08;一&#xff09; 文章目录 多线程进阶&#xff08;一&#xff09;单例模式饿汉模式懒汉模式 本篇主要引入多线程进阶的单例模式&#xff0c;为后面的大冰山做铺垫 代码案例介绍 单例模式 非常经典的设计模式 啥是设计模式 设计模式好比象棋中的 “棋谱”…...

C++树详解

树 树的定义 树&#xff08;Tree&#xff09;是n&#xff08;n≥0&#xff09;个结点的有限集。n0时称为空树。在任意一颗非空树中&#xff1a;①有且仅有一个特定的称为根&#xff08;Root&#xff09;的结点&#xff1b;②当n>1时&#xff0c;其余结点可分为m&#xff08…...

支付环境安全漏洞介绍

1、平台支付逻辑全流程分析 2、平台支付漏洞如何利用&#xff1f;买东西还送钱&#xff1f; 3、BURP抓包分析修改支付金额&#xff0c;伪造交易状态&#xff1f; 4、修改购物车参数实现底价购买商品 5、SRC、CTF、HW项目月入10W副业之路 6、如何构建最适合自己的网安学习路线 1…...

抄写Linux源码(Day16:内存管理)

回忆我们需要做的事情&#xff1a; 为了支持 shell 程序的执行&#xff0c;我们需要提供&#xff1a; 1.缺页中断(不理解为什么要这个东西&#xff0c;只是闪客说需要&#xff0c;后边再说) 2.硬盘驱动、文件系统 (shell程序一开始是存放在磁盘里的&#xff0c;所以需要这两个东…...

Cookie和Session详解以及结合生成登录效果

目录 引言 1.Cookie中的数据从哪来数据长啥样&#xff1f; 2.Cookie有什么作用&#xff1f; 3.cookie与session的工作关联&#xff1f; 4.Cookie到哪去&#xff1f; 5.Cookie如何存&#xff1f; 6.Session 7.Cookie与Session的关联与区别 8.通过代码理解 8.1 相关代码 8.2…...

Spring基础以及核心概念(IoC和DIQ)

1.Spring是什么 Spring是包含了众多工具方法的IoC容器 2.loC&#xff08;Inversion of Control &#xff09;是什么 IoC:控制反转,Spring是一个控制反转容器(控制反转对象的生命周期) Spring是一个loC容器&#xff0c;我们之前学过的List/Map就是数据存储的容器&#xff0c;to…...

《C和指针》笔记32:多维数组初始化

文章目录 使用括号进行初始化初始化省略维度 使用括号进行初始化 我们可以给数组赋值一个长长的列表&#xff1a; int matrix[2][3] { 100, 101, 102, 110, 111, 112 };它等价于 matrix[0][0]100; matrix[0][1]101; matrix[0][2]102; matrix[1][0]110; matrix[1][1]111; ma…...

零食食品经营小程序商城的作用是什么

零食几乎可以涵盖每个年龄阶段&#xff0c;同时又是市场中常见的零售批发商品&#xff0c;在多个场景中都有销售/购买属性&#xff0c;对消费者来说&#xff0c;购买零食的渠道多种多样&#xff0c;无论线下还是线上&#xff0c;都可随心而购。 庞大市场升级促进下&#xff0c…...

Java泛型--什么是泛型?

https://www.bilibili.com/video/BV1xJ411n77R?p5&vd_sourcebb1fced25254581cf052adea5e87a1ff 1.泛型类、接口 1.1.泛型类 泛型类的定义 class 类名称 <泛型标识, 泛型标识, ...> {private 泛型标识 变量名;...... }常用的泛型标识&#xff1a;T、E、K、V jav…...

LabVIEW工业虚拟仪器的标准化实施

LabVIEW工业虚拟仪器的标准化实施 创建计算机化的测试和测量系统&#xff0c;从计算机桌面控制外部测量硬件设备&#xff0c;以及在计算机屏幕上显示的类似仪器的面板上查看来自外部设备的测试或测量数据&#xff0c;所有这些都需要虚拟仪器系统软件。该软件允许用户执行所有这…...

JavaScript系列从入门到精通系列第十七篇:JavaScript中的全局作用域

文章目录 前言 1&#xff1a;什么叫作用域 一&#xff1a;全局作用域 1&#xff1a;全局变量的声明 2&#xff1a;变量声明和使用的顺序 3&#xff1a;方法声明和使用的顺序 前言 1&#xff1a;什么叫作用域 可以起作用的范围 function fun(){var a 1; } fun();consol…...

汇编指令集合

...

TinyWebServer整体流程

从main主函数开始&#xff1a; 一、定义MySQL数据库的账号、密码和用到的数据库名称。 二、调用Config获得服务器初始化属性 在这一步确定触发模式端口等信息。 三、创建服务器实例对象 设置根目录、开辟存放http连接对象的空间&#xff0c;开辟定时器空间。 四、利用Confi…...

【Java项目推荐之黑马头条】自媒体文章实现异步上下架(使用Kafka中间件实现)

自媒体文章上下架功能完成 需求分析 流程说明 接口定义 说明接口路径/api/v1/news/down_or_up请求方式POST参数DTO响应结果ResponseResult DTO Data public class WmNewsDto {private Integer id;/*** 是否上架 0 下架 1 上架*/private Short enable;}ResponseResult 自媒…...

自学(黑客)技术方法————网络安全

如果你想自学网络安全&#xff0c;首先你必须了解什么是网络安全&#xff01;&#xff0c;什么是黑客&#xff01;&#xff01; 1.无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面性&#xff0c;例如 Web 安全技术&#xff0c;既有 Web 渗透2.也有 Web 防…...

python+playwright 学习-84 Response 接口返回对象

Response 是获取接口响应对象,根据Response 对象可以获取响应的状态码,响应头部,响应正文等内容。 Response 相关操作方法 all_headers 所有响应HTTP标头, 返回Dict 类型 response.all_headers()body 获取 bytes 类型body内容 response.body()json 返回响应主体的 JS…...

GCN详解

a ⃗ \vec{a} a 向量 a ‾ \overline{a} a 平均值 a ‾ \underline{a} a​下横线 a ^ \widehat{a} a (线性回归&#xff0c;直线方程) y尖 a ~ \widetilde{a} a a ˙ \dot{a} a˙ 一阶导数 a \ddot{a} a 二阶导数 H(l)表示l层的节点的特征 W(l)表示l层的参数 D ~ \widet…...

总结二:linux面经

文章目录 1、 Linux中查看进程运行状态的指令、查看内存使用情况的指令、tar解压文件的参数。2、文件权限怎么修改&#xff1f;3、说说常用的Linux命令&#xff1f;4、说说如何以root权限运行某个程序&#xff1f;5、 说说软链接和硬链接的区别&#xff1f;6、说说静态库和动态…...

12、【Qlib】【主要组件】Qlib Recorder:实验管理

11、【Qlib】【主要组件】Qlib Recorder:实验管理 简介Qlib RecorderExperiment ManagerExperimentRecorderRecord Template简介 Qlib包含一个名为QlibRecorder的实验管理系统,旨在帮助用户以高效的方式处理实验并分析结果。 该系统有三个组件: 实验管理器(ExperimentMan…...

三一充填泵:煤矿矸石无害化充填,煤炭绿色高效开采的破局利器

富煤贫油少气是我国的能源禀赋特征&#xff0c;决定了我国以煤炭为主的能源结构&#xff0c;煤炭为国民经济发展提供了重要的基础。煤炭开采过程会对土地、地下水、空气等环境造成较大的污染&#xff0c;但大宗固废煤矸石无害化充填的技术手段可以有效改善这样的情况&#xff0…...

医疗器械标准目录汇编2022版共178页(文中附下载链接!)

为便于更好地应用医疗器械标准&#xff0c;国家药监局医疗器械标准管理中心组织对现行1851项医疗器械国家和行业标准按技术领域&#xff0c;编排形成《医疗器械标准目录汇编&#xff08;2022版&#xff09;》 该目录汇编分为通用技术领域和专业技术领域两大类&#xff0c;通用…...

C#和Excel文件的读写交互

C#和Excel文件的读写交互是一项重要的技术&#xff0c;在许多应用程序开发中起着关键作用。C#作为一种现代的面向编程语言&#xff0c;提供了丰富的库和功能&#xff0c;使开发人员能够轻松地处理Excel文件&#xff0c;并进行数据的读取和写入。 首先&#xff0c;让我们了解一下…...

纵横网站/seo培训多少钱

1.前言 我们需要在Linux系统上实现交叉编译并动态下发Android和iOS的静态库或者动态库&#xff0c;而其中最为关键的就是Android NDK和iOS工具链的生成。由于Android 的实现起来相对容易&#xff0c;这里重点讲述iOS端生成工具链的实现过程。下面的操作需要在Macbook上到处SDK。…...

推动政府网站建设/外链价格

关注【馋不腻天然狗粮】&#xff0c;健康科学养宠原创文章&#xff0c;请勿抄袭。狗狗的价格也是比较多铲屎官所关注的话题&#xff0c;来盘点常见的宠物的最新“报价”&#xff0c;小编额外赠送饲养注意哦&#xff0c;不知道你家狗狗值多少钱呢&#xff1f;一、金毛犬一般价格…...

网站突然打不开是什么原因/成品网站建站空间

MySQL Innodb 数据页结构分析 页&#xff08;Page&#xff09;是 Innodb 存储引擎用于管理数据的最小磁盘单位。常见的页类型有数据页、Undo 页、系统页、事务数据页等&#xff0c;本文主要分析的是数据页。默认的页大小为 16KB&#xff0c;每个页中至少存储有 2 条或以上的行…...

网站锚文本/镇江网站建设

grep "function has" -R ThinkPHP 转载于:https://www.cnblogs.com/datang6777/p/6755488.html...

wordpress focus/关键词分析工具网站

本科生毕业论文 基于python二手物品交易系统&#xff08;Django框架&#xff09; 开题报告 学 院&#xff1a; 专 业&#xff1a; 计算机科学与技术 年 级&#xff1a; 学生姓名&#xff1a; …...

网站信息化建设报送/培训心得体会总结简短

pymysqlpymsql是Python中操作MySQL的模块&#xff0c;其使用方法和MySQLdb几乎相同。1、下载安装pip3 install pymysql2、执行SQL执行SQL语句的基本语法&#xff1a;需要注意的是&#xff1a;创建连接后&#xff0c;都由游标来进行与数据库的操作&#xff0c;因而获取数据也需要…...