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

简介: 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!

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
7月前
|
机器学习/深度学习 弹性计算 应用服务中间件
阿里云服务器租赁价格标准整理汇总:一年/按月/按小时报价明细出炉
最新的阿里云服务器价格多少钱1年?阿里云服务器产品包含 ECS 云服务器、轻量应用服务器和 GPU 服务器,涵盖多种实例规格与配置,满足不同使用需求。今天小编总结一篇关于最新的阿里云服务器租赁价格标准整理汇总:包含一年/按月/按小时报价明细。
|
运维 Cloud Native Devops
「译文」什么是 SRE(站点可靠性工程师)?SRE 是做什么的?
「译文」什么是 SRE(站点可靠性工程师)?SRE 是做什么的?
|
11月前
|
安全 数据库连接 测试技术
Wire,一个神奇的Go依赖注入神器!
本文介绍了控制反转(IoC)与依赖注入(DI)的核心概念及其在Go语言中的应用,重点讲解了Google的Wire工具。通过定义提供者(provider)与注入器(injector),Wire在编译时自动生成依赖注入代码,提升程序性能与可维护性,适用于大型项目与高可测试性需求场景。
486 0
|
算法 Java Go
运行时管理GO与Java的概要对比
【5月更文挑战第17天】本文介绍Go、Python和Java的运行时机制各异。Go是编译型语言,其runtime负责内存管理、GC和协程调度,强调性能和低延迟。Java的JVM兼顾跨平台和性能,使用字节码和JIT编译,其GC策略复杂且高效。三种语言在设计和优化上各有侧重,适用不同场景。
523 3
|
分布式计算 资源调度 大数据
【决战大数据之巅】:Spark Standalone VS YARN —— 揭秘两大部署模式的恩怨情仇与终极对决!
【8月更文挑战第7天】随着大数据需求的增长,Apache Spark 成为关键框架。本文对比了常见的 Spark Standalone 与 YARN 部署模式。Standalone 作为自带的轻量级集群管理服务,易于设置,适用于小规模或独立部署;而 YARN 作为 Hadoop 的资源管理系统,支持资源的统一管理和调度,更适合大规模生产环境及多框架集成。我们将通过示例代码展示如何在这两种模式下运行 Spark 应用程序。
965 3
|
存储 安全 数据安全/隐私保护
Mac如何用命令行处理文件加密压缩
本教程介绍在Mac中通过命令行实现文件和文件夹的加密压缩、分卷处理及解压操作。主要内容包括:1) 使用`zip -er`命令加密压缩文件夹,`zip -e`命令加密压缩单个文件;2) 使用`split`命令按指定大小分割ZIP文件;3) 通过`cat`命令合并分卷文件并使用`unzip`解压。适用于需要安全传输和存储数据的场景。
|
缓存 网络协议 算法
Golang简单实现 分布式缓存+一致性哈希+节点再平衡(gossip + consistent + rebalance)
Golang简单实现 分布式缓存+一致性哈希+节点再平衡(gossip + consistent + rebalance)
600 0
|
消息中间件 存储 缓存
golang如何使用rocketmq 附加闭坑指南 建议收藏!!!
golang如何使用rocketmq 附加闭坑指南 建议收藏!!!
1954 0
|
算法
动态规划算法学习二:最长公共子序列
这篇文章介绍了如何使用动态规划算法解决最长公共子序列(LCS)问题,包括问题描述、最优子结构性质、状态表示、状态递归方程、计算最优值的方法,以及具体的代码实现。
868 0
动态规划算法学习二:最长公共子序列
|
消息中间件 负载均衡 数据管理
微服务架构在电商平台中的应用与实践
在现代电商平台的开发和运维中,微服务架构成为了提升系统灵活性和可扩展性的关键技术。本篇文章从实践出发,深入探讨了微服务架构在电商平台中的具体应用,包括服务拆分策略、通信机制、数据管理、以及常见的挑战和解决方案。通过真实的案例分析和代码示例,帮助读者全面了解微服务架构的优势和实施方法,提供在实际项目中的实践指导。

热门文章

最新文章