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

本文涉及的产品
云原生网关 MSE Higress,422元/月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 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
相关文章
|
2月前
|
IDE Go 开发工具
Golang简史及常见的开发工具介绍
这篇文章介绍了Go语言的适合学习人群、发展历史、优劣势、学习原因、前景以及学习方法,同时概述了几种常用的Go语言开发工具。
38 2
|
3月前
|
安全 Java 测试技术
Go 高性能编程心法探秘
文章深入探讨了Go语言在高性能编程中的各种技巧,包括常用数据结构的使用、内存管理、并发编程策略,以及如何通过减少锁的使用、有效利用sync包中的工具来优化程序性能。
19 0
|
6月前
|
C++
Tars重要知识点
Tars重要知识点
|
6月前
|
IDE 测试技术 Go
【字节跳动青训营】后端笔记整理-3 | Go语言工程实践之测试
用于验证已经修改或新增功能后,软件的既有功能是否受到影响。
119 2
|
6月前
|
Java 编译器 Go
【字节跳动青训营】后端笔记整理-1 | Go语言入门指南:基础语法和常用特性解析(一)
本文主要梳理自第六届字节跳动青训营(后端组)-Go语言原理与实践第一节(王克纯老师主讲)。
175 1
|
6月前
|
消息中间件 Go API
Golang深入浅出之-Go语言中的微服务架构设计与实践
【5月更文挑战第4天】本文探讨了Go语言在微服务架构中的应用,强调了单一职责、标准化API、服务自治和容错设计等原则。同时,指出了过度拆分、服务通信复杂性、数据一致性和部署复杂性等常见问题,并提出了DDD拆分、使用成熟框架、事件驱动和配置管理与CI/CD的解决方案。文中还提供了使用Gin构建HTTP服务和gRPC进行服务间通信的示例。
300 0
|
6月前
|
Go 区块链 数据库
第一章 Golang开山篇
第一章 Golang开山篇
39 1
|
安全 Java 编译器
Golang面试前三夜准备:细节沉淀
Golang面试前三夜准备:细节沉淀
|
安全 编译器 Go
详细 golang基础知识学习记录
详细 golang基础知识学习记录
|
存储 分布式计算 Serverless
阿里P8大牛手写《分布式系统手册》Github一天星标就超60K
前言 自20世纪40年代计算机诞生以来,及互联网呈现出高速发展的趋势,(互联网理财,移动支付,短视频应用,直播)计算机以及互联网已经深刻影响了人们的生活和工作的方方面面。 而这一切都离不开背后那个神秘的“巨人”——分布式系统。