摘要:
A few weeks ago and in MySQL 5.7, I had an ALTER TABLE that failed with a duplicate entry error. This is old news as it is happening since MySQL 5.6, 阅读全文
摘要:
最近多线操作同时在弄好几个项目,正好几个项目的 golang 版本又不太一样,于是在寻找类似 python vitualenv 或者 conda 的环境管理工具。 最开始找到的就是官方的解决方案 golang/dl, golang/dl 维护了自1.5 以来到当前最新版本 1.19 beta 的所有 阅读全文
摘要:
背景 目前在做一个消息中台,提供给业务方各种消息通道能力。我们在系统设计过程中,除了有对业务方在使用时做 Quota 限制;也有对请求做流量控制(几w+ QPS),防止并发流量上来时打垮服务。下面是个人在调研流量控制方案的一些梳理和总结。 高并发解决方案概述 并发通常是指并发访问,也就是在某个时间点 阅读全文
摘要:
需求是对一张近 20亿的超大型表做字段类型的修改,我们这里是需要将自增字段从 int => bigint, 目前自增 id 已接近 20亿所以不得不修改了。我们都知道一般在对表 DDL 的时候我们尽量会使用 onlineDDL 并且使用 inplace 算法来实现这一点以实现不阻塞表的插入。但是某些 阅读全文
摘要:
不太理解为何中文技术博客搜不到这个问题的答案。。 其实 crontab 可以直接指定使用什么 shell 因为会用到 source 的关系所以我们可以先制定 shell 为 bash SHELL=/bin/bash 既不需要自己去建 shell 脚本指定 #!/bin/sh 也不需要在要执行的命令前 阅读全文
摘要:
正则表达式分组分为捕获组(Capturing Groups)与非捕获组Non-Capturing Groups,那为什么需要分组呢? 正则表达式分组分为捕获组(Capturing Groups)与非捕获组Non-Capturing Groups。正则里面是用成对的小括号来表示分组的,如(\d)表示一 阅读全文
摘要:
Overview 目前业务涉及到了一个上 TB 级的数据库,因为维护的项目已经有很多年了,所以该项目的数据库设计模式还是参考了之前的范式涉及,导致大量使用了外键。又因为项目的特点,为了保持幂等,又大量使用了 MySQL 的 upsert 语法。所以最近终于扛不住开始出现大范围的 gap lock 和 阅读全文
摘要:
虽然现在我们使用的大多数软件都是可视化的,很容易上手,但是这并不代表 CLI(命令行)应用就没有用武之地了,特别是对于开发人员来说,还是会经常和 CLI 应用打交道。而 Golang 就非常适合用来构建 CLI 应用,下面我们就将来介绍如何在 Golang 中构建一个 CLI 应用。 对于开发人员来 阅读全文
摘要:
Golang提供了官方的http包,对于http操作非常的方便和简洁。但是不同于PHP,使用Golang的包来做http操作,还是没有那么”直接“,需要实例化一下这个,实例化一下那个,有点像Java,因此,为了以后书写方便,就把基本的请求写在此。下次用的时候,直接copy就好了。 get 请求 ge 阅读全文
摘要:
前期准备 公司打算把放在 AWS RDS 上的数据迁移到 GCP 的 CloudSQL 上去。目前我们再 AWS RDS 上的数据有超过 4TB 的数据,用常规的方法还是比较吃力的。 之前调研了一下 google 提供的迁移工具 DMS,但是这个工具像个玩具一言难尽,我觉得从性能和好用来说远远比不上 阅读全文