Mycat核心教程--基于HA 机制的Mycat 高可用【二】

Mycat核心教程--基于HA 机制的Mycat 高可用

  • 六、基于HA 机制的Mycat 高可用
    • 6.1.高可用方案
    • 6.2.安装配置HAProxy
      • 6.2.1.准备好HAProxy安装包,传到/opt目录下
      • 6.2.2.解压到/usr/local/src
      • 6.2.3.进入解压后的目录,查看内核版本,进行编译
      • 6.2.4.编译完成后,进行安装
      • 6.2.5.安装完成后,创建目录、创建HAProxy配置文件
      • 6.2.6.向配置文件中插入以下配置信息,并保存
      • 6.2.7.放行8066端口
      • 6.2.8.启动验证--启动HAProxy
      • 6.2.9.查看HAProxy进程
      • 6.2.10.haproxy安装成系统服务
      • 6.2.11.Mycat主备机均启动
      • 6.2.12.打开浏览器访问
      • 6.2.13.验证负载均衡,通过HAProxy访问Mycat
    • 6.3.配置Keepalived
      • 6.3.1.准备好Keepalived安装包,传到/opt目录下
      • 6.3.2.解压到/usr/local/src
      • 6.3.3.安装依赖插件
      • 6.3.4.进入解压后的目录,进行配置,进行编译
      • 6.3.5.进行编译,完成后进行安装
      • 6.3.6.运行前配置
      • 6.3.7.修改配置文件
      • 6.3.8.启动验证--启动Keepalived
      • 6.3.9.登录验证
    • 6.4.测试高可用
      • 6.4.1.关闭mycat
      • 6.4.2.通过虚拟ip查询数据
  • 七、Mycat 安全设置
    • 7.1.权限配置
      • 7.1.1.user 标签权限控制
        • 7.1.1.1.修改配置文件server.xml
        • 7.1.1.2.配置说明
      • 7.1.2.测试案例一
        • 7.1.2.1.用user用户登录,运行命令如下
        • 7.1.2.2.切换到TESTDB数据库,查询orders表数据
        • 7.1.2.3.查询到数据,如图
        • 7.1.2.4.执行插入数据sql
        • 7.1.2.5.可看到运行结果,插入失败,只有只读权限
      • 7.1.3.测试案例二
        • 7.1.3.1.用mycat用户登录,运行命令如下
        • 7.1.3.2.切换到TESTDB数据库,查询orders表数据
        • 7.1.3.3.查询到数据
        • 7.1.3.4.执行插入数据sql
        • 7.1.3.5.看到运行结果,插入成功
      • 7.1.4.privileges 标签权限控制
        • 7.1.4.1.修改server.xml配置文件privileges部分
        • 7.1.4.2.配置说明
      • 7.1.5.测试案例一
        • 7.1.5.1.重启mycat,用mycat用户登录,运行命令
        • 7.1.5.2.切换到TESTDB数据库,查询orders表数据
        • 7.1.5.3.禁止该用户查询数据
        • 7.1.5.4.执行插入数据sql
        • 7.1.5.5.可看到运行结果,禁止该用户插入数据
      • 7.1.6.测试案例二
        • 7.1.6.1.重启mycat,用mycat用户登录,运行命令
        • 7.1.6.2.切换到TESTDB数据库,查询orders表数据
        • 7.1.6.3.可以查询到数据,如图
        • 7.1.6.4.执行插入数据sql
        • 7.1.6.5.运行结果,插入成功
        • 7.1.6.6.执行删除数据sql
        • 7.1.6.7.运行结果,删除成功
    • 7.2.SQL 拦截
      • 7.2.1.白名单
        • 7.2.1.1.设置白名单
        • 7.2.1.2.重启Mycat后,192.168.147.129主机使用mycat用户访问
        • 7.2.1.3.可以正常访问
        • 7.2.1.4.在此主机换user用户访问,禁止访问
        • 7.2.1.5.在192.168.147.130主机用mycat用户访问,禁止访问
      • 7.2.2.黑名单
        • 7.2.2.1.设置黑名单
        • 7.2.2.2.重启Mycat后,192.168.147.129主机使用mycat用户访问
        • 7.2.2.3.可以正常访问
        • 7.2.2.4.切换TESTDB数据库后,执行删除数据语句
        • 7.2.2.5.运行后发现已禁止删除数据
      • 7.2.3.可以设置的黑名单SQL 拦截功能列表
  • endl

六、基于HA 机制的Mycat 高可用

在实际项目中,Mycat 服务也需要考虑高可用性,如果 Mycat 所在服务器出现宕机,或 Mycat 服务故障,需要有备机提供服务,需要考虑Mycat 集群。

6.1.高可用方案

我们可以使用HAProxy + Keepalived 配合两台 Mycat 搭起 Mycat 集群,实现高可用性。

HAProxy 实现了 MyCat 多节点的集群高可用和负载均衡, 而 HAProxy 自身的高可用则可以通过Keepalived 来实现。

在这里插入图片描述

编号角色IP地址机器名
1Mycat1192.168.147.128host128
2Mycat2192.168.147.129host129
3HAProxy(master)192.168.147.130host130
4Keepalived(master)192.168.147.130host130
5HAProxy(backup)192.168.147.131host131
6Keepalived(backup)192.168.147.131host131

6.2.安装配置HAProxy

6.2.1.准备好HAProxy安装包,传到/opt目录下

官网:https://www.haproxy.org/

cd /opt/wget https://www.haproxy.org/download/1.5/src/haproxy-1.5.19.tar.gz

在这里插入图片描述

在这里插入图片描述

6.2.2.解压到/usr/local/src

tar -xzvf haproxy-1.5.19.tar.gz -C /usr/local/src/

6.2.3.进入解压后的目录,查看内核版本,进行编译

cd /usr/local/src/haproxy-1.5.19# 查看内核版本
uname -r
# 3.10.0-1160.71.1.el7.x86_64# 执行Linux的make命令进行编译
make TARGET=linux310 PREFIX=/usr/local/haproxy ARCH=x86_64# ARGET=linux310,内核版本,使用uname -r查看内核,如:3.10.0-1160.71.1.el7,此时该参数就为linux310
# ARCH=x86_64,系统位数
# PREFIX=/usr/local/haprpxy 
# /usr/local/haprpxy,为haprpxy安装路径。

在这里插入图片描述

6.2.4.编译完成后,进行安装

make install PREFIX=/usr/local/haproxy

在这里插入图片描述

6.2.5.安装完成后,创建目录、创建HAProxy配置文件

# 将解压后目录下的配置模版文件拷贝到程序运行目录的配置文件目录下
cp /usr/local/src/haproxy-1.5.19/examples/haproxy.cfg /usr/local/haproxy/haproxy.cfg# 创建目录
mkdir -p /usr/data/haproxy/vim /usr/local/haproxy/haproxy.conf

6.2.6.向配置文件中插入以下配置信息,并保存

# 全局配置,定义haproxy进程的工作特性和全局配置
global# 定义全局的 syslog 服务器,最多可以定义两个log 127.0.0.1	local0#log 127.0.0.1	local1 notice#log loghost	local0 infomaxconn 4096# chroot运行的路径,,当前目录为指定目录,设置超级用户权限启动进程,提高安全性chroot /usr/local/haproxy # haproxy pid的存放位置pidfile /usr/data/haproxy/haproxy.pid uid 99gid 99# 守护进程的方式在后台工作daemon#debug#quiet# 默认配置
defaults# 日志继承全局配置段的设置log 	globalmode    tcp option  abortoncloseoption  redispatch# 重试次数为3次,失败3次以后则表示服务不可用retries 3 maxconn 2000 # 连接超时时间,表示客户端请求转发至服务器所等待的时长timeout connect 5000 # 客户端超时时间,表示客户端非活跃状态的时间timeout client  50000 # 服务器超时时间,表示客户端与服务器建立连接后,等待服务器的超时时间timeout server  50000listen proxy_status# bind后面必须有空格然后加冒号,否则会报错bind :48066mode tcp balance roundrobin server mycat_1 192.168.147.128:8066 check inter 10s server mycat_2 192.168.147.129:8066 check inter 10s frontend admin_stats bind :7777mode   http stats  enable option httplog maxconn 10 stats refresh 30s stats uri /admin stats auth admin:123123   stats hide-version stats admin if TRUE
# 控制台的用户名admin 密码123123

6.2.7.放行8066端口

systemctl status firewalld# --add-port=8066/tcp,表示添加指定8066端口,格式为:端口/通讯协议
# --permanent表示设置为持久
# --zone  表示作用域
firewall-cmd --zone=public --add-port=8066/tcp --permanent# --remove-port表示移除指定端口
firewall-cmd --zone=public --remove-port=8066/tcp --permanent# 重新加载防火墙
firewall-cmd --reload# 再次查询开放端口
firewall-cmd --list-ports# 查看已配置规则
firewall-cmd --list-all

6.2.8.启动验证–启动HAProxy

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf 

6.2.9.查看HAProxy进程

ps -ef | grep haproxy 

在这里插入图片描述

6.2.10.haproxy安装成系统服务

# 创建脚本
vi /usr/lib/systemd/system/haproxy.service# 重新加载系统服务
systemctl daemon-reloadsystemctl start haproxy
systemctl stop haproxy
systemctl status haproxy
[Unit]
Description=HAProxy Load Balancer
Documentation=https://www.haproxy.org/
After=network.target[Service]
Type=forking
PIDFile=/usr/data/haproxy/haproxy.pid
ExecStart=/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=true[Install]
WantedBy=default.target

在这里插入图片描述

6.2.11.Mycat主备机均启动

mycat console

在这里插入图片描述

在这里插入图片描述

6.2.12.打开浏览器访问

http://192.168.147.130:7777/admin#在弹出框输入用户名:admin密码:123123 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6.2.13.验证负载均衡,通过HAProxy访问Mycat

mysql -umycat -p -P 48066 -h 192.168.147.130
123456

在这里插入图片描述
在这里插入图片描述

6.3.配置Keepalived

keepalived官网地址:https://keepalived.org/

6.3.1.准备好Keepalived安装包,传到/opt目录下

cd /opt/wget https://keepalived.org/software/keepalived-2.2.8.tar.gz

在这里插入图片描述

6.3.2.解压到/usr/local/src

tar -zxvf keepalived-2.2.8.tar.gz -C /usr/local/src

6.3.3.安装依赖插件

yum install -y gcc openssl-devel popt-devel libnl libnl-devel

6.3.4.进入解压后的目录,进行配置,进行编译

cd /usr/local/src/keepalived-2.2.8./configure --prefix=/usr/local/keepalived

6.3.5.进行编译,完成后进行安装

make && make install

6.3.6.运行前配置

cp /usr/local/src/keepalived-2.2.8/keepalived/etc/init.d/keepalived /etc/init.d/ mkdir /etc/keepalived cp /usr/local/keepalived/etc/keepalived/keepalived.conf.sample /etc/keepalived/keepalived.confcp /usr/local/src/keepalived-2.2.8/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ 

6.3.7.修改配置文件

vim /etc/keepalived/keepalived.conf
#修改内容如下
! Configuration File for keepalivedglobal_defs { notification_email { coon@foxmail.com }notification_email_from keepalived@joy.com    smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr vrrp_garp_interval 0 vrrp_gna_interval 0 
}
vrrp_instance VI_1 {#主机配MASTER,备机配BACKUP state MASTER #所在机器网卡 interface ens33 virtual_router_id 51 #数值越大优先级越高 priority 100 advert_int 1 authentication{auth_type PASS auth_pass 1111 } virtual_ipaddress { #虚拟IP 192.168.147.200 } 
} 
virtual_server 192.168.147.200 48066 { delay_loop 6 lb_algo rr lb_kind NAT     persistence_timeout 50     protocol TCP # HAProxy主机real_server 192.168.147.130 48066 {weight 1 TCP_CHECK { connect_timeout 3 retry 3 delay_before_retry 3} } # HAProxy从机real_server 192.168.147.131 48600 {  weight 1 TCP_CHECK { connect_timeout 3 retry 3 delay_before_retry 3} } }

6.3.8.启动验证–启动Keepalived

systemctl start keepalived
systemctl stop keepalived
systemctl status keepalived

在这里插入图片描述
在这里插入图片描述

6.3.9.登录验证

mysql -umycat -p -P 48066 -h 192.168.147.200
123456

在这里插入图片描述
在这里插入图片描述

6.4.测试高可用

6.4.1.关闭mycat

在这里插入图片描述

6.4.2.通过虚拟ip查询数据

mysql -umycat -p123456 -h 192.168.147.200 -P 48066

在这里插入图片描述
在这里插入图片描述

七、Mycat 安全设置

7.1.权限配置

7.1.1.user 标签权限控制

目前Mycat 对于中间件的连接控制并没有做太复杂的控制,目前只做了中间件逻辑库级别的读写权限控制。
是通过server.xml 的user 标签进行配置。

7.1.1.1.修改配置文件server.xml
vi /usr/local/mycat/conf/server.xml
#server.xml配置文件user部分 
<user name="mycat"> <property name="password">123456</property> <property name="schemas">TESTDB</property> 
</user> 
<user name="user"> <property name="password">user</property> <property name="schemas">TESTDB</property> <property name="readOnly">true</property> 
</user>

在这里插入图片描述

7.1.1.2.配置说明
标签属性说明
name应用连接中间件逻辑库的用户名
password该用户对应的密码
TESTDB应用当前连接的逻辑库中所对应的逻辑表。schemas 中可以配置一个或多个
readOnly应用连接中间件逻辑库所具有的权限。true 为只读,false 为读写都有,默认为 false

7.1.2.测试案例一

  • 使用user用户,权限为只读(readOnly:true)
  • 验证是否可以查询出数据,验证是否可以写入数据
7.1.2.1.用user用户登录,运行命令如下
mysql -uuser -puser -h 192.168.147.128 -P8066

在这里插入图片描述

7.1.2.2.切换到TESTDB数据库,查询orders表数据
use TESTDB;select * from orders;
7.1.2.3.查询到数据,如图

在这里插入图片描述

7.1.2.4.执行插入数据sql
insert into orders(id,order_type,customer_id,amount) values(7,101,101,10000);
7.1.2.5.可看到运行结果,插入失败,只有只读权限

在这里插入图片描述

7.1.3.测试案例二

  • 使用mycat用户,权限为可读写(readOnly:false)
  • 验证是否可以查询出数据,验证是否可以写入数据
7.1.3.1.用mycat用户登录,运行命令如下
mysql -umycat -p123456 -h 192.168.147.128 -P8066 

在这里插入图片描述

7.1.3.2.切换到TESTDB数据库,查询orders表数据
use TESTDB;select * from orders;
7.1.3.3.查询到数据

在这里插入图片描述

7.1.3.4.执行插入数据sql
insert into orders(id,order_type,customer_id,amount) values(7,101,101,10000);
insert into orders(id,order_type,customer_id,amount) values(next value for MYCATSEQ_ORDERS,101,101,10000);
7.1.3.5.看到运行结果,插入成功

在这里插入图片描述

7.1.4.privileges 标签权限控制

在user 标签下的privileges 标签可以对逻辑库(schema)、表(table)进行精细化的DML 权限控制。

privileges 标签下的check 属性,如为true 开启权限检查,为 false 不开启,默认为 false。

由于 Mycat 一个用户的 schemas 属性可配置多个逻辑库(schema) ,所以 privileges 的下级节点 schema 节点同样可配置多个,对多库多表进行细粒度的 DML 权限控制。

7.1.4.1.修改server.xml配置文件privileges部分
vi /usr/local/mycat/conf/server.xml
#server.xml配置文件privileges部分
#配置orders表没有增删改查权限
<user name="mycat"> <property name="password">123456</property> <property name="schemas">TESTDB</property> <!-- 表级 DML 权限设置 --> <privileges check="true"> <schema name="TESTDB" dml="1111" ><table name="orders" dml="0000"></table> <!--<table name="tb02" dml="1111"></table>--> </schema> </privileges> 
</user> 

在这里插入图片描述

7.1.4.2.配置说明
DML 权限增加(insert)更新(update)查询(select)删除(select)
0000禁止禁止禁止禁止
0010禁止禁止可以禁止
1110可以禁止禁止禁止
1111可以可以可以可以

7.1.5.测试案例一

  • 使用mycat用户,privileges配置orders表权限为禁止增删改查(dml=“0000”)
  • 验证是否可以查询出数据,验证是否可以写入数据
7.1.5.1.重启mycat,用mycat用户登录,运行命令
mysql -umycat -p123456 -h 192.168.147.128 -P8066
7.1.5.2.切换到TESTDB数据库,查询orders表数据
use TESTDB;select * from orders;
7.1.5.3.禁止该用户查询数据

在这里插入图片描述

7.1.5.4.执行插入数据sql
insert into orders(id,order_type,customer_id,amount) values(8,101,101,10000);
insert into orders(id,order_type,customer_id,amount) values(next value for MYCATSEQ_ORDERS,105,102,10000);
7.1.5.5.可看到运行结果,禁止该用户插入数据

在这里插入图片描述

7.1.6.测试案例二

  • 使用mycat用户,privileges配置orders表权限为禁止增删改查(dml=“1111”)
  • 验证是否可以查询出数据,验证是否可以写入数据
vi /usr/local/mycat/conf/server.xml

在这里插入图片描述

7.1.6.1.重启mycat,用mycat用户登录,运行命令
mysql -umycat -p123456 -h 192.168.147.128 -P8066
7.1.6.2.切换到TESTDB数据库,查询orders表数据
use TESTDB;select * from orders;
7.1.6.3.可以查询到数据,如图

在这里插入图片描述

7.1.6.4.执行插入数据sql
insert into orders(id,order_type,customer_id,amount) values(8,101,101,10000);
7.1.6.5.运行结果,插入成功

在这里插入图片描述

7.1.6.6.执行删除数据sql
delete from orders where id in (7,8);
7.1.6.7.运行结果,删除成功

在这里插入图片描述

7.2.SQL 拦截

firewall 标签用来定义防火墙;firewall 下 whitehost 标签用来定义 IP 白名单 ,blacklist 用来定义 SQL 黑名单。

7.2.1.白名单

可以通过设置白名单,实现某主机某用户可以访问Mycat,而其他主机用户禁止访问。

7.2.1.1.设置白名单
vi /usr/local/mycat/conf/server.xml
#设置白名单 
#server.xml配置文件firewall标签 
#配置只有192.168.140.129主机可以通过mycat用户访问 
<firewall> <whitehost> <host host="192.168.147.129" user="mycat"/> </whitehost> 
</firewall> 

在这里插入图片描述

7.2.1.2.重启Mycat后,192.168.147.129主机使用mycat用户访问
mysql -umycat -p123456 -h 192.168.140.128 -P 8066
7.2.1.3.可以正常访问

在这里插入图片描述

7.2.1.4.在此主机换user用户访问,禁止访问
mysql -uuser -puser -h 192.168.147.128 -P8066

在这里插入图片描述

7.2.1.5.在192.168.147.130主机用mycat用户访问,禁止访问
mysql -umycat -p -h 192.168.147.128 -P 8066
123456

在这里插入图片描述

7.2.2.黑名单

可以通过设置黑名单,实现Mycat 对具体 SQL 操作的拦截,如增删改查等操作的拦截。

7.2.2.1.设置黑名单
vi /usr/local/mycat/conf/server.xml
#设置黑名单 
#server.xml配置文件firewall标签 
#配置禁止mycat用户进行删除操作
<firewall> <whitehost> <host host="192.168.147.129" user="mycat"/> </whitehost> <blacklist check="true"> <property name="deleteAllow">false</property> </blacklist> 
</firewall> 

在这里插入图片描述

7.2.2.2.重启Mycat后,192.168.147.129主机使用mycat用户访问
mysql -umycat -p -h 192.168.147.128 -P 8066
123456
7.2.2.3.可以正常访问

在这里插入图片描述

7.2.2.4.切换TESTDB数据库后,执行删除数据语句
use TESTDB;select * from orders;delete from orders where id = 6;
7.2.2.5.运行后发现已禁止删除数据

在这里插入图片描述

7.2.3.可以设置的黑名单SQL 拦截功能列表

配置项缺省值描述
selelctAllowtrue是否允许执行 SELECT 语句
deleteAllowtrue是否允许执行 DELETE 语句
updateAllowtrue是否允许执行 UPDATE 语句
insertAllowtrue是否允许执行 INSERT 语句
createTableAllowtrue是否允许创建表
setAllowtrue是否允许使用 SET 语法
alterTableAllowtrue是否允许执行 Alter Table 语句
dropTableAllowtrue是否允许修改表
commitAllowtrue是否允许执行 commit 操作
rollbackAllowtrue是否允许执行 roll back 操作

endl

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

宠物空气净化器—养猫人士对猫毛过敏必备好物

当很多铲屎官养猫一段时间后&#xff0c;突然就对猫毛过敏&#xff0c;这真的很难受。有些人认为对猫咪过敏是因为它们在空气中飘浮的毛发导致的&#xff01;其实大部分人过敏是因为猫身上的一种微小的蛋白质。这种会引起过敏的蛋白质附着在猫咪的一些皮屑上。猫咪很爱干净&…

苍穹外卖 -- day11 - Apache ECharts- 营业额统计- 用户统计- 订单统计- 销量排名Top10

苍穹外卖-day11 课程内容 Apache ECharts 营业额统计 用户统计 订单统计 销量排名Top10 功能实现&#xff1a;数据统计 数据统计效果图&#xff1a; 1. Apache ECharts 1.1 介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库&#xff0c;提供直观&#x…

浅谈 TCP 三次握手

文章目录 三次握手 三次握手 首先我们需要明确&#xff0c;三次握手的目的是什么&#xff1f; 是为了通信双方之间建立连接&#xff0c;然后传输数据。 那么建立连接的条件是什么呢&#xff1f; 需要确保通信的双方都确认彼此的接收和发送能力正常&#xff0c;满足这个条件&a…

win系统环境变量设置后不马上启用解决方法

目录 1. 刷新系统变量缓存2. 查看环境变量,检查是否真的保存成功了3. 重启系统(最后的玄学)总结 欢迎关注 『发现你走远了』 博客&#xff0c;持续更新中 欢迎关注 『发现你走远了』 博客&#xff0c;持续更新中 1. 刷新系统变量缓存 有时候系统会缓存环境变量&#xff0c;导致…

将文件从windows传入到ubuntu

实现效果图 2.方法&#xff1a; 2.1打开 Ubuntu 的终端窗口&#xff0c;然后执行如下命令来安装 FTP 服务 输入&#xff1a;sudo apt-get install vsftpd 等待软件自动安装&#xff0c;安装完成以后使用如下 VI 命令打开/etc/vsftpd.conf&#xff0c;命令如下&#xff1a;su…

Spring6学习技术|事务

学习材料 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09; 事务 什么是事务&#xff1f;好像是数据库部分的词&#xff0c;我自己的理解是对数据库进行的操作序列&#xff0c;要么一起完成&#xff0c;要么都不完成…

关于纯前端想要变成全栈编写接口的学习推荐

推荐学习uniappuniclouduniadmin 学习成本低,不到一个月就能开发出自己的接口,上传到服务空间,并且能够实现后端的功能,能够调用接口 当然这里使用的不是mysql数据库,而是unicloud推荐的存储方式 操作起来也很方便

用 SIL 和 PIL 仿真测试生成的代码

目录 PIL 的目标连接配置 对顶层模型运行 SIL 或 PIL 仿真 对 Model 模块运行 SIL 或 PIL 仿真 SIL 或 PIL 模块仿真 硬件实现设置 使用软件在环 (SIL) 和处理器在环 (PIL) 仿真,测试模型组件与从组件生成的生产代码之间的数字等效性。 使用 SIL 仿真,在您的开发…

vue - - - - Vue3+i18n多语言动态国际化设置

Vue3i18n多语言动态国际化设置 前言一、 i18n 介绍二、插件安装三、i18n配置3.1 创建i18n对应文件夹/文件3.2 en-US.js3.3 zh-CN.js3.4 index.js 四、 mian.js 引入 i18n配置文件五、 组件内使用六、使用效果 前言 继续【如何给自己的网站添加中英文切换】一文之后&#xff0c…

pytorch -- CIFAR10 完整的模型训练套路

网络结构 代码 # CIFAR 10完整的模型训练套路&#xff1a; import torch.optim import torchvision from torch import nn from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterfrom model import *# 1. 准备数据集 train_data torch…

产品经理学习-产品运营《社群活跃度打造》

目录&#xff1a; 社群运营普遍问题 社群是否需要活跃 提升活跃的方法 衡量社群的3个标准 社群运营普遍问题 在做社群运营的时候通常会进入一个相似的循环&#xff0c;拉群后会活跃一段时间变成广告群&#xff0c;不断的发商品链接、广告&#xff0c;一段时候后社群变成了一…

数据安全-动态加密(不同敏感字段使用不同的加密算法-MySQL、Oracle版本)

动态数据加密 动态加密&#xff08;也称实时加密&#xff0c;透明加密等&#xff0c;其英文名为encrypt on-the-fly&#xff09;&#xff0c;是指数据在使用过程中自动对数据进行加密或解密操作&#xff0c;无需用户的干预&#xff0c;合法用户在使用加密的文件前&#xff0c;…

LVGL 环境搭建-基于WSL

背景说明 小白刚开始接触LVGL&#xff0c;前些日子狠心花198元入手了一块堪称LVGL 入门利器~HMI-Board 开发板&#xff0c;虽然有RT-Thread 集成好的LVGL 环境&#xff0c;只需要几个步骤就能成功把lvgl 的示例运行起来&#xff0c;对于爱折腾的我来说&#xff0c;过于简单也并…

变大再变大,matplotlib坐标轴刻度设置

文章目录 对数坐标系自定义映射对数图表重置刻度 matplotlib教程&#xff1a;初步&#x1f4c8;子图绘制&#x1f4c8;坐标投影 matplotlib支持重设坐标轴刻度&#xff0c;包括刻度值的重新映射和刻度标签的重新映射。前者可以调整坐标刻度的缩放比例&#xff0c;后者可以更改…

Jmeter系列(2)目录介绍

目录 Jmeter目录介绍bin目录docsextrasliblicensesprintable_docs Jmeter目录介绍 在学习Jmeter之前&#xff0c;需要先对工具的目录有些了解&#xff0c;也会方便后续的学习 bin目录 examplesCSV目录中有CSV样例jmeter.batwindow 启动文件jmeter.shMac/linux的启动文件jmete…

pycharm如何安装pygame库

pycharm如何安装pygame库 PyCharm是Python中广受欢迎的一种IDE&#xff0c;它可以为用户提供许多工具和便利的服务&#xff0c;从而大大提高开发效率。pygame库可以用python进行游戏开发提供很好的支持&#xff0c;那么在ptcharm中如何安装pygame库呢&#xff1f; 一、安装步…

vue项目build 静态文件部署到fastapi后台中访问白屏,访问不到?

正常创建VUE项目那些应该都会&#xff0c;到项目最后 npm run build然后会生成一个dist文件夹 然后把这个文件夹的东西复制去到fastapi项目根目录创建一个static文件夹 然后开始写点代码 # main.py绑定静态文件目录 app.mount("/static", StaticFiles(directory&…

[算法沉淀记录] 排序算法 —— 堆排序

排序算法 —— 堆排序 算法基础介绍 堆排序&#xff08;Heap Sort&#xff09;是一种基于比较的排序算法&#xff0c;它利用堆这种数据结构来实现排序。堆是一种特殊的完全二叉树&#xff0c;其中每个节点的值都必须大于或等于&#xff08;最大堆&#xff09;或小于或等于&am…

goland配置新增文件头

参考&#xff1a; goland函数注释生成插件 goland函数注释生成插件_goland自动加函数说明-CSDN博客 GoLand 快速添加方法注释 GoLand 快速添加方法注释_goland批量注释-CSDN博客 goland 如何设置头注释&#xff0c;自定义author和data goland 如何设置头注释&#xff0c;自定…