day33(8/21)——高并发eleme项目登录模块

1、配置一主二从mysql

  1. mycat对mysql8不完全支持

  2. mysql8主从问题不大get_pub_key=1

  3. gtids事务复制

  4. 删除/etc/my.cnf

  5. 同步data文件需要先停用mysql服务,删除data目录中的auto.cnf

  6. gtid模式以及经典模式都需要锁表

cpp 复制代码
   flush tables with read lock;
   unlock tables;
   set @@glopal.read_only=ON;
   set @@global.read_only=OFF';
  1. 开放mysql服务端

firewall-cmd -- zone=public -- add-

port=3306/tcp -- permanent

firewall-cmd -- reload

firewall-cmd -- list-ports

firewall-cmd -- list-servciel

2、 添加数据库和数据表

  1. 不能修改从服务器

  2. 创建库和表

#!/bin/bash

/usr/local/mysql/bin/msyql -proot << EOF

create database if not exists eleme charset utf8mb4;

use eleme;

create table user(

id int primary key auto_increment,

name varchar(45) not null,

username varchar(45) not null,

password varchar(45) not null,

remark varchar(45)

insert into eleme. t_user(name, username, password, remark)values("超级管理员","admin","admin","管理员");insert into eleme. t_user(name, username, password, remark)va

Lues("访客","guest","guest","最低权限");

quit

EOF

3、 添加登录数据,可以输入sql语句,也可以在图形化界面

4、添加mycat读写分离负载均衡

  1. nginx,haproxy,lvs负载均衡技术 分不清什么数据库能读,什么数据库能写

  2. master mysql可读可写,slave mysql只能读取数据

  3. mycat是阿里开源项目,所以必须安装java环境

4.步骤

  1. 开放8066端口

  2. 上传软件包mycat和jdk1.8

  3. 解压

  4. 配置部署java环境

  5. 复制到 /usr/local目录下

  6. 配置/etc/profile source /etc/profile

  7. server.xml

4.schema.xml

  1. /usr/local/mycat/bin/mycat start|stop

  2. 查看日志文件wrapper.log

5、 部署2台java后端服务器,jdk版本17

root@java \~# tar -xf jdk-17_linux-x64_bin.tar.gz

root@java \~# ls

anaconda-ks.cfg jdk-17.0.12 jdk-17_linux-x64_bin.tar.gz

root@java \~# cp -r jdk-17.0.12/ /usr/local/jdk

root@java \~# vim /etc/profile

root@java \~# source /etc/profile

root@java \~# java -version

6、部署饿了么后端项目 登录模块

root@java \~# ls

anaconda-ks.cfg jdk-17.0.12

application.yml jdk-17_linux-x64_bin.tar.gz

eleme_server-0.0.1-SNAPSHOT.jar

1.修改application.yml文件,端口默认8080,url,username,password

root@java \~# vim application.yml

  1. 先打开java服务器的端口

root@java \~# firewall-cmd -- add-port=8080/tcp -- permanent

root@java \~# firewall-cmd -- reload

  1. 启动后端服务器

root@java \~# java -jar eleme_server-0.0.1-SNAPSHOT.jar

  1. 远程浏览器测试

7、 使用Ivs代理java服务

  1. 设置dr主机

root@lvs_dr \~# yum -y install ipvsadm.x86_64

root@lvs_dr \~# ipvsadm -L //查看以往的

root@lvs_dr \~# ipvsadm -C //清空

root@lvs_dr \~# ifconfig ens33:1 192.168.8.18 broadcast 192.168.8.18 netmask 255.255.255.255 up //挂载vip vip对外

root@lvs_dr \~# route add -host 192.168.8.18 dev ens33:1 //加入路由

root@lvs_dr \~# ipvsadm -A -t 192.168.8.18:8080 -s rr //设置负载均衡规则 -s 轮询策略

root@lvs_dr \~# ipvsadm -a -t 192.168.8.18:8080 -r 192.168.8.161 -g // java

root@lvs_dr \~# ipvsadm -a -t 192.168.8.18:8080 -r 192.168.8.166 -g //java02

  1. 设置rs主机

2.1 在lo接口上绑定vip

root@java \~# ifconfig lo:0 192.168.8.18 broadcast 192.168.8.18 netmask 255.255.255.255 up //挂载vip

root@java02 \~# ifconfig lo:0 192.168.8.18 broadcast 192.168.8.18 netmask 255.255.255.255 up

2.2 添加路由

root@java \~# route add -host 192.168.8.18 dev lo:0

root@java02 \~# route add -host 192.168.8.18 dev lo:0

2.3 抑制rs接受请求

root@java \~# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

root@java \~# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

root@java \~# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

root@java \~# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

root@java02 \~# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

root@java02 \~# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

root@java02 \~# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

root@java02 \~# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

2.4 浏览器

8、nginx代理端口

root@lvs_dr \~# yum -y install nginx

root@lvs_dr \~# vim /etc/nginx/nginx.conf

upstream javagroup{

server localhost:8080 weight=95;

server 192.168.8.161:8080 weight=3; //java

server 192.168.8.166:8080 weight=2; //java02

}

location =/ {

proxy_pass http://javagroup;

}

9、 测试登录

浏览器访问vip

相关推荐
戴为沐1 天前
Linux内存扩容指南
linux
zylyehuo1 天前
Linux 彻底且安全地删除文件
linux
用户805533698032 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297912 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者4 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo4 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10155 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao6 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3107 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode7 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏