翔云

Just try, don't shy. 最新文章请点击
随笔 - 294, 文章 - 0, 评论 - 27, 阅读 - 49万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Golang

摘要:Orchestrator 是一款开源的MySQL数据库高可用HA工具。 它稳定可靠,通过分布式的集群部署模式,自身具备容灾能力。 它功能强大,通过周期执行探测SQL,抓取MySQL 实例的基本信息,包括配置信息、复制状态等,可以得到MySQL的拓扑结构topology。并且,可以根据拓扑结构诊断故障 阅读全文

posted @ 2022-12-18 21:28 翔云123456 阅读(498) 评论(0) 推荐(0) 编辑

摘要:Orchestrator中,在MySQL集群粒度,有故障自动恢复开关,在全局粒度,也有一个全局的开关(global recovery disable)。 本文主要介绍全局开关(global recovery disable)的基本实现方式。 下面分别从几个层面阐述。 1. DB 层 在DB层定义一个 阅读全文

posted @ 2022-10-23 13:12 翔云123456 阅读(53) 评论(0) 推荐(0) 编辑

摘要:Orchestrator中有很多hooks函数,用于调用外部服务做一些配置或者准备等工作。 hooks分类 Orchestrator中主要有以下这些hooks,按照其执行顺序依次为: PreGracefulTakeoverProcesses(只对graceful执行) OnFailureDetect 阅读全文

posted @ 2022-09-30 23:10 翔云123456 阅读(90) 评论(0) 推荐(0) 编辑

摘要:Orchestrator 一款是 MySQL 高可用high availability软件,主要用于 MySQL Master-Slave 主从架构。 从 v3.2.3 开始初步支持MGR MySQL Group Replication。但要求MySQL版本必须大于8.0。 改动主要包括三部分,实例 阅读全文

posted @ 2022-07-31 21:21 翔云123456 阅读(103) 评论(0) 推荐(0) 编辑

摘要:在使用golang连接MySQL的时候,经常会用到parseTime和loc。 这两个参数的作用是什么呢? 先说下不带这两个参数存在的问题: 使用go-sql-driver/mysql来连接MySQL数据库,时区默认是UTC的,读取或 写入的时间都是UTC时间。而本地是东八区时间。 获取到的MySQ 阅读全文

posted @ 2022-04-30 23:06 翔云123456 阅读(2144) 评论(0) 推荐(0) 编辑

摘要:在golang 中,我们已经熟知的可以作为map key 的类型有 string, int。 那还有哪些类型可以作为key,哪些类型不可以呢? 本文对此做下简单介绍。 在golang规范中,可比较的类型都可以作为map key,包括: 类型 说明 boolean 布尔值 numeric 数字 包括整 阅读全文

posted @ 2022-03-26 22:53 翔云123456 阅读(657) 评论(0) 推荐(0) 编辑

摘要:上篇文章go 单元测试go-sqlmock 已经介绍了如何使用go-sqlmock进行 sql相关的单元测试。 本文着重介绍平时开发过程中常见的例子。 模拟insert 例如以下 insert 代码。 package orange import ( "database/sql" "fmt" ) ty 阅读全文

posted @ 2022-03-05 23:23 翔云123456 阅读(584) 评论(0) 推荐(1) 编辑

摘要:在使用MySQL的过程,有时会遇到MySQL 报错信息,例如, 权限报错: Error 1045: Access denied for user 'root'@'10.3.18.88' (using password: YES) 连接报错: Error 2013: Lost connection t 阅读全文

posted @ 2021-11-28 15:38 翔云123456 阅读(257) 评论(0) 推荐(0) 编辑

摘要:操作系统提供两种时钟:“wall clock” 墙上时钟 和 “monotonic clock” 单调时钟, wall clock 用于显示时间,会受到时钟同步的影响。 monotonic clock 用于计量时间,例如 时间大小比较,时间差计算。不会受时钟重置的影响。 例如,下面代码中,计算耗时, 阅读全文

posted @ 2021-06-05 22:43 翔云123456 阅读(1489) 评论(0) 推荐(0) 编辑

摘要:在数据库应用开发过程中,会在数据库上执行各种 SQL 语句。 在做单元测试的时候,一般不会与实际数据库交互,这时就需要mock 数据库操作。 即 在不建立真实连接的情况下,模拟 sql driver 中的各种操作。 本文介绍golang中 mock sql 操作的 库 go-sqlmock。 1.安 阅读全文

posted @ 2021-03-28 23:34 翔云123456 阅读(1801) 评论(0) 推荐(0) 编辑

摘要:单元测试中,经常需要mock。 例如,一个函数中,需要调用网络连接函数建立连接。做单元测试时,这个建立连接的函数就可以mock一下,而不真正去尝试建立连接。 mock 有时也称为“打桩”。 例如,mock一个函数,可以说,为一个函数打桩。 在golang中, gomonkey 就是这样的工具库。 本 阅读全文

posted @ 2021-03-28 10:18 翔云123456 阅读(6540) 评论(0) 推荐(0) 编辑

摘要:问题 当主库上数据的某些变更,不希望复制到从库上时,经常会将sql_log_bin关闭,使更新操作不记录bin log。 例如,在一个连接会话开始的时候,关闭sql_log_bin,接下来,这个连接上执行的更新操作都不记录bing log。 为了保证,关闭sql_log_bin和更新操作,是在同一个 阅读全文

posted @ 2021-02-28 16:24 翔云123456 阅读(364) 评论(0) 推荐(0) 编辑

摘要:1.什么是事务? 数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。--百度百科 例如,转账就是一个事务,它由两个操作组成: 将款项从第一个账户划 阅读全文

posted @ 2021-02-28 14:48 翔云123456 阅读(210) 评论(0) 推荐(0) 编辑

摘要:(目录) golang 自带的map不是并发安全的,并发读写会报错: fatal error: concurrent map read and map write 一般的解决方式是加锁,控制互斥。 1.加锁的map 如下代码所示: package main import ( "fmt" "sync" 阅读全文

posted @ 2021-02-27 16:26 翔云123456 阅读(137) 评论(0) 推荐(0) 编辑

摘要:如何判断slice是否为空 判断slice是否为空,不能与nil进行比较做判断,因为slice有可能已初始化。而是应该使用len计算长度。 例如 package main import ( "fmt" ) func main() { var slice1 []int slice2 := []int{ 阅读全文

posted @ 2021-02-27 15:26 翔云123456 阅读(466) 评论(0) 推荐(0) 编辑

摘要:本文中介绍一个奇怪现象,一个空列表(或切片),却可以打印出列表中的内容。 以下代码中,在一个json字符串中,定义一个列表,列表中有一个空字符串。 接着,将json字符串解析到结构体中,最后,打印结构体中的字符串列表。 package main import ( "fmt" "encoding/js 阅读全文

posted @ 2021-02-11 21:48 翔云123456 阅读(237) 评论(0) 推荐(0) 编辑

摘要:单元测试是代码质量的重要保证,测试覆盖率是关键的衡量指标。 在golang 中,通过go test 进行单元测试,并可以分析覆盖率。 单元测试覆盖率 示例代码 首先看下示例代码。 新建目录utils,目录有以下文件 ll total 16 -rw-r--r-- 1 lanyang staff 132 阅读全文

posted @ 2021-01-02 22:26 翔云123456 阅读(3480) 评论(0) 推荐(0) 编辑

摘要:本文介绍go单元测试中,如何执行指定的单元测试函数。 首先看下示例代码。 新建目录utils,目录有以下文件 ll total 16 -rw-r--r-- 1 lanyang staff 132B 12 31 21:09 add_hint.go -rw-r--r-- 1 lanyang staff 阅读全文

posted @ 2020-12-31 21:45 翔云123456 阅读(359) 评论(0) 推荐(0) 编辑

摘要:本文将介绍继承、组合这些复用概念在golang中是如何体现的。 在golang中,通过匿名结构体成员,可以访问匿名结构体中定义的的方法,就是所谓的实继承。 通过具名结构体成员,也可以访问该结构体中定义的方法,这就是所谓的组合。 1.匿名结构体成员 继承 例子1 结构体A1中包含匿名结构体A。 定义A 阅读全文

posted @ 2020-11-07 23:04 翔云123456 阅读(329) 评论(0) 推荐(0) 编辑

摘要:上篇文章关于golang database_sql 包讲述了 database/sql 的整体设计框架。 本文简要介绍go-sql-driver/mysql的调用关系,是如何与database/sql关联起来的,包括从驱动注册到具体查询,每个步骤的底层调用。 我们查询MySQL的大体代码demo如下 阅读全文

posted @ 2020-11-01 22:59 翔云123456 阅读(1040) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示