Go微服务搭建 mysql 主从同步
在实际项目,当访问量大,并发量高或者业务较复杂的时候。为了优化性能,减轻一个主库mysql服务的压力,提升用户体验,会考虑分库分表或者主从模式。 项目中会存在大量的读写操作,而且读的操作可能会占很大的比例,如果写的同时使用了锁机制,那么会导致查询等待,也就导致查询很慢。为了减少这种情况的发生,可以使用从库来处理读,主库负责写。
主从又分为几种模式
-
...
在实际项目,当访问量大,并发量高或者业务较复杂的时候。为了优化性能,减轻一个主库mysql服务的压力,提升用户体验,会考虑分库分表或者主从模式。 项目中会存在大量的读写操作,而且读的操作可能会占很大的比例,如果写的同时使用了锁机制,那么会导致查询等待,也就导致查询很慢。为了减少这种情况的发生,可以使用从库来处理读,主库负责写。
主从又分为几种模式
遇到一个需求。需要每天凌晨三点实现对指定的几张表执行备份(备份前一天的数据)。并且写到备份库里,并对现有库中删除掉。每天的单子量非常大,如果再加上备份读写 mysql 会比较慢
刚开始通过go协程开四个协程实现备份,一个小时备份了 不到50万太慢了。所以改用存储过程+事件的方式实现。经测试
530万的数据量 备份需要大概13分钟。
创建d...
简介
LevelDB是一个由Google公司所研发的键-值存储嵌入式数据库管理系统编程库
leveldb是一个写性能十分优秀的存储引擎,是典型的LSM树(Log Structured-Merge Tree)实现。LSM树的核心思想就是放弃部分读的性能,换取最大的写入能力
比较使用读少...
每个业务系统都有日志,当系统出现问题时,需要通过日志信息来定位和解决问题。当系统机器比较少时,登录到服务器上查看即可满足,当系统机器规模巨大,登录到机器上查看几乎不现实(分布式的系统,一个系统部署在多台机器上)
把机器上的日志实时收集,统一存储到中心系统。再对这些日志建立...
Go使用阿里nacos管理服务注册和发现,思路Demo
func
Read More
Go微服务 Dockerfile ENTRYPOINT的使用 - 接受参数 读取nacos对应的配置文件
2022-03-09
现在通过命令行参数传参的形式,根据传入的参数加载nacos上对应的配置文件。
首先要先理解nacos的使用。其次懂得使用Go语言中的flag包来解析命令行参数。获取命令行参数的形式有多种,这里只以flag包为例。
可以通flag.String、flag.Int等等获取对应...
Read More
Go微服务 编写shell脚本启动docker部署的go项目
2022-03-04
上一篇,通过编写Dockerfile部署go项目。存在一个不方便的地方。每次将新的打包好的go项目传到服务上之后都需要先停止docker,删除docker 容器 , 删除docker 镜像,再执行dokcer build 和docker run 步骤台繁琐.
这一篇通过编写shell脚本一键执行命令完成上述所有步骤实现自动重启docker部署的goladn项目
...
Read More
Go微服务 go语言工程制作dockerfile,通过docker将项目或者独立服务部署到服务器
2022-03-02
Read More