mysql 主从复制
介绍
配置
克隆虚拟机,搞两台虚拟机,再分别进入到网卡设置的那个 enss33 文件里面去修改 ip 地址,在同一个子网下。在 finalShell 里面配置好两台设备的 ip 地址就可以连接了。但是,我们还必须修改 mysql 的 uuid:mysql 修改 uuid。
配置主库
主:192.168.100.128
从:192.168.100.100
登录 mysql:
GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';
配置从库
change master to
master_host='192.168.100.128',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000001',master_log_pos=441;
start slave;
读写分离案例
介绍
入门案例
使用 Sharding-JDBC 实现读写分离。
准备工作
在主库下创建 rw 的数据库:
创建一张表:
maven 坐标
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.0.0-RC1</version>
</dependency>
配置 application.yml 配置读写分离规则
spring:
shardingsphere:
datasource:
names:
master,slave
# 主数据源
master:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.100.128:3306/rw?characterEncoding=utf-8
username: root
password: root
# 从数据源
slave:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.100.100:3306/rw?characterEncoding=utf-8
username: root
password: root
masterslave:
# 读写分离配置
load-balance-algorithm-type: round_robin #轮询
# 最终的数据源名称
name: dataSource
# 主库数据源名称
master-data-source-name: master
# 从库数据源名称列表,多个逗号分隔
slave-data-source-names: slave
props:
sql:
show: true #开启SQL显示,默认false
在配置文件中允许自定义覆盖
在 spring 下:
main:
allow-bean-definition-overriding: true
项目实现读写分离
数据库环境准备(主从复制)
在主库下面创建 reggie 数据库,导入资料里面的 sql 语句。
创建一个 v1.1
的分支。
按照之前的配置好。
Nginx
ngnix 概述
yum -y install gcc pcre-devel zlib-devel openssl=devel
先创建 nginx 的目录,再做第五步。
nginx 配置文件结构
nginx 命令
在 sbin 下执行
查看版本
检查配置文件正确性
启动和停止
这个 index.html 是 nginx 的首页,默认使用的是 80 接口。
重新加载配置文件
配置文件位置:
加入到环境变量
为了方便随时随地使用,我们可以将这个执行命令的目录加入到 linux 的环境变量当中:
nginx 具体应用
部署静态资源
反向代理
一个代理客户端,一个代理服务器。
正向代理:代理客户端去访问。
反向代理:代理服务器来接受,和正向代理不同,反向代理相当于是为目标服务器工作的,当你去访问某个网站时,你以为你访问问的是目标服务器,其实不然,当你访问时,其实是由一个代理服务器去接收你的请求。
正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器资源。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。
server{
listen 82;
server_name localhost;
location / {
proxy_pass http://192.168.100.100:8080;
}
}
负载均衡
upstream targetserver{
server 192.168.100.128:8080;
server 192.168.100.128:8081;
}
server{
listen 8080;
server_name localhost;
location / {
proxy_pass http://targetserver;
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于