先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
正文
🌾阅读前,快速浏览目录和章节概览可帮助了解文章结构、内容和作者的重点。了解自己希望从中获得什么样的知识或经验是非常重要的。建议在阅读时做笔记、思考问题、自我提问,以加深理解和吸收知识。
💡在这个美好的时刻,本人不再啰嗦废话,现在毫不拖延地进入文章所要讨论的主题。接下来,我将为大家呈现正文内容。
🥤本文内容
部署MySQL三主六从半同步集群
一主二从同步集群规划
master节点:ip地址:192.168.80.101 mysql端口:33061
slave1节点:ip地址:192.168.80.102 mysql端口:33062
slave2节点:ip地址:192.168.80.103 mysql端口:33063
服务器登录的用户名密码都是root用户admin密码
master节点的mysql登录账户是root用户masterroot密码
slave1节点和slave2节点的mysql登录账户是root用户slaveroot密码
sudo useradd -r -s /sbin/nologin -d /var/lib/mysql mysql
sudo usermod -d /var/lib/mysql mysql
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql
grep mysql /etc/passwd
sudo usermod -d /var/lib/mysql mysql
sudo setenforce 0
需要安装docker和docker-compose
命令形式安装
安装docker
更新软件包
sudo yum update -y
安装必要依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 缓存
sudo yum makecache fast
安装 Docker
sudo yum install docker-ce docker-ce-cli containerd.io
启动 Docker 后台服务
sudo systemctl start docker
新建 daemon.json 文件
sudo vim /etc/docker/daemon.json
将下面的配置复制进去,然后执行 service docker restart即可:
{
“registry-mirrors”: [“http://hub-mirror.c.163.com”]
}
如果想要用阿里云的docker镜像源,可看这个网址 https://cr.console.aliyun.com/cn-qingdao/mirrors
安装好后使用如下命令查看安装的版本,如果正常输出说明安装成功
docker version
安装docker-compose
下载docker-compose
sudo curl -L “https://github.com/docker/compose/releases/download/1.27.4/docker-compose- ( u n a m e − s ) − (uname -s)- (uname−s)−(uname -m)” -o /usr/local/bin/docker-compose
授权
sudo chmod +x /usr/local/bin/docker-compose
安装好后使用如下命令查看安装版本,如果正常输出说明安装成功
docker-compose version
宝塔面板形式安装
执行Centos安装脚本,命令如下:
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
官网地址:https://www.bt.cn/new/download.html
下载完成之后,执行以下命令查看宝塔面板,命令如下:
bt
查看面板地址,命令如下:
14
修改登录面板的密码,命令如下:
5
登录之后需要绑定一个账号,如果绑定不上则执行以下命令:
curl -k -sSO http://101.37.149.22:5880/new/auto_node.sh && bash auto_node.sh
输出结果如下:
[root@mhamanager app1]# curl -k -sSO http://101.37.149.22:5880/new/auto_node.sh && bash auto_node.sh
|_ _ \ | _ _ | |_ __ \ / \ |_ |_ | | __ | |_ |
| |) | |/ | | _| ______ | |__) | / _ \ | \ | | | | _| | |
| '. | | || | / / ___ \ | |\ | | | _| _ | | _
_| |) | | | | | / / \ _ | |\ | _| |/ | _| |/ |
|/ || || || |__| ||_| || |__|
自动修复节点中…
开始测试节点…请勿中断程序…
hosts指定节点: 103.212.48.148
域名解析节点: 103.212.48.148
节点连接测试正常,修复已完成! 请登录面板查看是否正常
其他异常查看官方论坛,地址:https://www.bt.cn/bbs/thread-87257-1-1.html
登录之后在左侧找到docker点击安装即可。
需要注意的是,宝塔面板的防火墙都是开机自启动的,需要注意防火墙端口。
部署node1节点的master1
docker-compose.yaml文件
编辑docker-compose.yaml文件,代码如下:
mkdir /opt/software/mysqlcluster/master1
cd /opt/software/mysqlcluster/master1
vi docker-compose.yaml
文件内容,代码如下:
version: ‘3’ # 使用docker-compose版本3
services: # 定义服务
mysql_master: # 定义一个名为mysql_master的服务
image: mysql:8.0.20 # 使用MySQL 8.0.20镜像
container_name: mysql_node1_master1 # 指定容器名称为mysql_node1_master1
restart: unless-stopped # 在容器退出时自动重新启动
ports: # 定义容器和主机之间的端口映射
- “33061:3306” # 将容器的3306端口映射到主机的33061端口
environment: # 定义环境变量
MYSQL_ROOT_PASSWORD: node1master1root # 设置root用户的密码
volumes: # 定义数据卷 - /var/lib/mysql:/var/lib/mysql # 数据目录
healthcheck:
test: [“CMD”, “mysqladmin” ,“ping”, “-h”, “localhost”, “-u”, “root”, “-pnode1master1root”] # 设置容器健康检查命令
interval: 20s # 每隔20秒进行一次健康检查
timeout: 10s # 健康检查超时时间为10秒
retries: 3 # 健康检查失败时重试次数为3次
授权文件
sudo chmod 777 docker-compose.yaml
mkdir /opt/software/mysqlcluster/master1/conf
vi /opt/software/mysqlcluster/master1/conf/my.cnf
my.cnf文件
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
symbolic-links=0
default-storage-engine = InnoDB # 默认存储引擎
server_id = 1010 # 服务器的唯一标识符
bind-address = 0.0.0.0 # 服务器监听的IP地址
port = 3306 # 服务器监听的端口号
character-set-server = utf8mb4 # 服务器使用的字符集
skip-external-locking # 不使用外部锁定
skip-name-resolve # 不进行域名解析
log-bin = mysql-bin # 启用二进制日志
log-bin-trust-function-creators = 1 # 允许二进制日志中记录函数创建的事件
max_connections = 2000 # 最大连接数
max_user_connections = 1000 # 单个用户最大连接数
max_connect_errors = 4000 # 最大连接错误数
wait_timeout = 300 # 空闲连接的超时时间
interactive_timeout = 600 # 交互式连接的超时时间
table_open_cache = 512 # 表缓存大小
max_allowed_packet = 32M # 最大允许的数据包大小
sort_buffer_size = 2M # 排序缓冲区大小
join_buffer_size = 2M # 连接缓冲区大小
thread_cache_size = 8 # 线程缓存大小
sync_binlog = 0 # 数据刷盘参数=0时,由文件系统控制写盘的频率,并发性能最好,但是意外丢失数据的风险最大
gtid_mode = ON # 开启GTID模式,用于自动处理复制中的事务
enforce_gtid_consistency = ON # GTID_MODE 和 ENFORCE_GTID_CONSISTENCY 的设置是一致的,强制全局事务标识的一致性