浅谈go defer 执行过程 defer 一般用途 关闭文件句柄 释放锁 释放资源 go 语言的defer功能强大,对于资源管理非常方便,但是如果没用好,也会有陷阱。 defer 执行流程defer 是先进后出的数据结构,如果有多个defer表达式,调用顺序类似于栈,越后面的defer表达式越先被调用。 不过如果对defer的了解不够深入,使用起来可能会踩到一些坑,尤其是跟带命名的返回参数一起使用时。 defer是在retu 2022-02-14 golang golang
老生长谈:进程间通信 进程间通信方式真可谓老生长谈了, 但是进程间通信都有哪些,又都在哪应用呢? 好吧 不多哔哔,为自己科普起来 1 无名管道通信Pipe 管道是 UNIX 系统 IPC 的最古老的形式,所有的 UNIX 系统都提供管道机制,如果你使用过 shell 中的管道,应该不会默认,例如 1ps -aux | grep "xxx" 这个意思是将 ps -aux 的输出作为 grep 2021-12-17 进程 操作系统
MySQL在可重复读的隔离级别下到底解解决了幻读的问题没有? RR幻读到底被解决了没?做业务朋友对数据库的ACID多少都了解一些,这里面又尤其隔离性是讨论最多且最复杂的,说到隔离性就不得不说由于隔离产生的问题: 脏读 不可重复读 幻读 这里面争议最大的就数MySQL默认隔离级别RR是否解决了幻读的问题, 这篇文章就是以实操的角度来看这个问题,所谓光说不练假把式,透过现象看到事情的本质才是我们要做的 先说结论:MySQL在可重复读隔离级别下并没有解决幻读 2021-11-10 存储 MySQL MVCC lock RR
golang运行时核心调度函数(schedule,findrunnable,sysmon)源码分析 概述分析核心调度函数 shcedule findrunnable sysmon scheduledlv调试: 12345678910111213141516(dlv) b runtime.scheduleBreakpoint 1 set at 0x435cf3 for runtime.schedule() /usr/lib/golang/src/runtime/proc.go:2609(dlv) 2021-10-06 golang runtime schedule sysmon findrunnable
golang运行时队列操作函数源码分析 环境: CentOS Linux release 8.4.2105 go1.15.14 dlv1.5.0 被调试的源码内容: 12345package mainfunc main() { println("Hello World!")} 快速搭建调试环境: 123456FROM centosRUN yum install golang -y \&a 2021-10-06 golang golang runtime
一致性哈希算法以及Go实现 什么是一致性哈希一致哈希 是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n 个关键字重新映射,其中 K 是关键字的数量,n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。 以上为维基百科中的介绍,很显然要想明白一致性哈希首先我们要先搞懂传统哈希 传统哈希用例首先我们以一种简单的分布式缓存架构来阐述 如图-1所示,我 2021-09-03 存储 缓存 hash golang
设置MySQL的隔离级别 怎么查当前的隔离级别?MySQL数据库默认的存储引擎是支持事务的innodb,所以自然的就有默认的隔离级别--可重复读 只有支持ACID的存储引擎才有对应的各种隔离级别 在我们设置当前事务的隔离级别的时候我们首先要会查询我们的MySQL的隔离级别是什么 MySQL查询隔离级别的语句是: 1234567mysql> select @@global.tx_isolation,@@tx_isol 2021-08-25 存储 mysql
docker-compose搭建MySql主从和双主 相信mysql的binlog都不陌生binlog的主要作用就是进行数据同步,今天我们从数据同步的角度搭一下mysql的主从/双主。 base以下基于mysql5.7 简单了解下binlog binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。 binlog日志包括两类文件:二进制日志索引文 2021-08-23 存储 mysql 高可用 数据同步
微服务概述 微服务起源单体应用的缺点 单体应用复杂 应用无法拓展 可靠性低 敏捷开发和快速部署无法完成 由此产生微服务 一切争端的开始 微服务的演变微服务本质上是对面向架构的模式(SOA)的一种实践 微服务的特点: 小即是美 单一职责 尽可能早创建原型 可以执行比效率更重要 微服务的定义围绕业务功能构建的,服务关注单一业务,服务间采用轻量级的通信机制,可以全自动独立部署,可以使用不同的编程语言和数据 2021-08-18 架构 ddd 微服务