Golang进阶,揉碎数据库中间件,干货满满!(一)

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
性能测试 PTS,5000VUM额度
简介: Golang进阶,揉碎数据库中间件,干货满满!(一)

一、Centos7、Mac安装MySQL#


笔记地址:https://www.cnblogs.com/ZhuChangwu/p/12984153.html

视频串讲地址:https://www.bilibili.com/video/BV19g411N7NR?p=2


二、主从复制原理#



2.1、基于binlog_filename + position#


原理图:


笔记地址:https://mp.weixin.qq.com/s/cSToNVQPK8QCpkjapxNoEw

视频串讲地址:https://www.bilibili.com/video/BV19g411N7NR?p=3


2.2、基于GTID#


原理图:

笔记地址:https://mp.weixin.qq.com/s/V5hU2ATeey871loWQIqHKg

视频串讲地址:https://www.bilibili.com/video/BV19g411N7NR?p=4


三、my.cnf#


[mysqld]
# 端口
port = 3306
# 数据目录
datadir=/var/lib/mysql
# 错误日志
log-error=/var/log/mysqld.log
# 为每张表单独创建一个表空间文件
# 大家常说的表空间到底是什么?究竟什么又是数据表呢? https://mp.weixin.qq.com/s/CwxRjGI843UerF89G_WJ-Q
innodb_file_per_table=on
innodb_file_format = Barracuda
# binlog 相关配置
# 1、MySQL的 bin log有啥用?在哪里?谁写的?怎么配置?
# https://mp.weixin.qq.com/s/DN1shuyxPJ6BkE_RLezAnA
# 2、了解bin log的写入机制吗?说说你们线上如何调整参数的!
# https://mp.weixin.qq.com/s/MtWzoiJtupso5M8z1KUaQQ
# 3、bin log有哪些格式?有啥区别?优缺点?线上用哪种格式?
# https://mp.weixin.qq.com/s/ar-wVbDi4CYjPI1t6fTjVw
log_bin=mysql-bin
log-bin-index = mysql-bin.index
max_binlog_size = 256M
sync-binlog = 1000
binlog-format = ROW
# relaylog相关配置
relay_log_recovery = 1
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay-log = relay-log
relay-log-index = relay-log.index
sync_relay_log = 1000
max_relay_log_size = 256M
# 设置server-id,集群唯一
server-id=1
# pid、socket
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/lib/mysql/mysql.sock
symbolic-links=0


四、测试SQL#


create database test;
use test;
CREATE TABLE `runoob_tbl` (
  `runoob_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `runoob_title` varchar(100) NOT NULL,
  `runoob_author` varchar(40) NOT NULL,
  `submission_date` date DEFAULT NULL,
  PRIMARY KEY (`runoob_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
 INSERT INTO runoob_tbl  (runoob_title, runoob_author, submission_date)
 VALUES("欢迎微信搜索:", "风一样的程序员", NOW());


CHANGE MASTER TO
    MASTER_HOST='10.4.7.103',
    MASTER_USER='MySQLsync',
    MASTER_PASSWORD='MySQLsync123',
    MASTER_PORT=3306,
    MASTER_AUTO_POSITION = 1;
CHANGE MASTER TO
    MASTER_HOST='10.4.7.103',
    MASTER_USER='mysqlsync',
    MASTER_PASSWORD='mysqlsync123',
    MASTER_PORT=3306,
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=434;
    CHANGE MASTER TO MASTER_AUTO_POSITION=0;


grant replication slave on *.* to MySQLsync@"%" identified by "MySQLsync123";
 grant replication slave on *.* to mysqlsync@"127.0.0.1" identified by "mysqlsync123";
 grant replication slave on *.* to mysqlsync@"%" identified by "mysqlsync123";


五、中间件使用、概念串讲#


脑图:



视频地址:https://www.bilibili.com/video/BV19g411N7NR?p=5

搞明白这几点:

  1. 跟大家讲明白这样一件事,你以为你是直连的MySQL?其实不是的,你直连的MySQL_Proxy
  2. Node、分片的概念
  3. Proxy配置文件的解读
  4. 演示Proxy的使用


六、总揽启动流程#


  • 基于mysql协议获取主从库的连接
  • 将主从库的连接维护进连接池
  • 探活机制

视频地址:https://www.bilibili.com/video/BV19g411N7NR?p=6

Notice:跟大家讲明白这样一件事,你以为你是直连的MySQL?其实不是的,你直连的MySQL_Proxy!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
SQL 关系型数据库 MySQL
探索Gorm - Golang流行的数据库ORM框架
探索Gorm - Golang流行的数据库ORM框架
|
6月前
|
缓存 负载均衡 监控
探秘数据库中间件:ProxySQL与MaxScale的优势与劣势
探秘数据库中间件:ProxySQL与MaxScale的优势与劣势
234 2
|
4月前
|
运维 安全 Cloud Native
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
|
6月前
|
缓存 NoSQL 中间件
应对数据库不断膨胀的数据:缓存和队列中间件
【6月更文挑战第5天】该文探讨了优化数据库使用以提升应用系统性能的策略。文中建议利用Redis缓存和MQ消息队列作为辅助工具,以进一步优化性能和减少资源消耗。
188 2
应对数据库不断膨胀的数据:缓存和队列中间件
|
5月前
|
中间件 Java 测试技术
单元测试问题之编写单元测试时运行环境、数据库、中间件问题如何解决
单元测试问题之编写单元测试时运行环境、数据库、中间件问题如何解决
|
6月前
|
SQL 关系型数据库 MySQL
mysqldiff - Golang 针对 MySQL 数据库表结构的差异 SQL 工具
Golang 针对 MySQL 数据库表结构的差异 SQL 工具。https://github.com/camry/mysqldiff
97 7
|
5月前
|
SQL 中间件 关系型数据库
MyCAT数据库中间件的架构与使用方法
MyCAT数据库中间件的架构与使用方法
|
7月前
|
缓存 监控 中间件
中间件Cache-Aside策略应用程序直接与缓存和数据库进行交互
【5月更文挑战第8天】中间件Cache-Aside策略应用程序直接与缓存和数据库进行交互
85 4
|
7月前
|
SQL 关系型数据库 MySQL
Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
|
7月前
|
JavaScript 前端开发 中间件
Node.js—Express使用、Express 路由 、Express 中间件、托管静态资源、使用 Express 写接口、node.js链接sqlite数据库
Node.js—Express使用、Express 路由 、Express 中间件、托管静态资源、使用 Express 写接口、node.js链接sqlite数据库
248 0