自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 欢迎扫码关注我的微信公众号,感谢大家支持!

欢迎扫码关注我的微信公众号,感谢大家支持! 我将在微信公众号写一些更系统性的文章(当前的CSDN也会保持更新,但两者内容不会完全一致)。 这里附上微信公众号的第一篇文章的正文: 之前经常在CSDN博客转悠,主要记录自己在学习和生活中的一些经历。欢迎大家去我...

2019-11-16 22:34:32

阅读数 151

评论数 2

原创 用proteus仿真电路来看计算机如何计算1+2+3+4+5

好久没有重装系统了,打算重装一下, 发现还有个proteus软件,回忆起往事。借着回忆,来说说计算机是怎样计算1+2+3+4+5的。 计数器,存储器,加法器,触发器,都是基本的元件: U1计数器,用于给出地址; U2是存储器,我在里面的前6个字节处,分别存放了0,1,2,3...

2019-11-16 09:07:57

阅读数 152

评论数 0

原创 etcd锁释放超时导致的数据不一致性

服务端代码: func proc() { begin lock begin transaction amount := queryAmountFromDb() amount += req.OrderAmount ...

2019-11-09 21:24:10

阅读数 178

评论数 1

原创 #define likely(x) __builtin_expect(!!(x), 1) 性能测试

看linux源码或者一些优秀组件的源码,经常碰到likely和unlikely, 其实很简单,无非就是显式告诉编译器怎么去优化。有兴趣的话,可以看看对应的汇编。下面,我们来实际测试一下likely/unlikely的性能优化效果: #include <stdio.h&gt...

2019-11-02 20:37:55

阅读数 316

评论数 2

原创 异步log让人临时怀疑人生------log是现象,还可能是假象,不可全信

在之前的博文中,多次说过:log是现象,还可能是假象,不可全信。 在实际开发中,见过太多太多这样的案例。 来看看最近遇到的一个让人临时怀疑人生的问题, go伪代码如下: type Money struct { Principal int } func main(){ p :=...

2019-11-01 20:59:26

阅读数 304

评论数 0

原创 tail -f a.txt | grep x | y 无法输出的问题------用行缓冲来搞定

最近同事反馈, tail -f + grep + awk时没有输出预期的内容, 我觉得奇怪, 试了一下, 果然没有输出。 第一感觉是:缓存, 缓冲, 又他娘是你。 因为我之前碰到过类似的问题《又是缓存惹的火------从tcpdump -iany port xxx -Xnlps0 ...

2019-11-01 20:05:29

阅读数 137

评论数 2

原创 golang defer的那些坑爹事儿

先来一个最简单的: package main import ( "fmt" ) func f() { i := 1 fmt.Println("i1 is", i) defer fmt.Prin...

2019-11-01 20:01:10

阅读数 103

评论数 0

原创 mac上的交叉编译:CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ./main.go

开发环境是mac, 生产环境是ubuntu, 显然mac上编译出来的二进制,没法在ubuntu上运行。 于是乎,在mac上需要安装虚拟机, 用virtualbox + vagrant搞起,据我所知, 很多刚入职的同学,往往不能在一周的时间内(当然,这一周肯定有其他杂事,并不是说需要用一周来...

2019-10-27 22:14:10

阅读数 248

评论数 0

原创 mysql记录缺失之谜------要敢于怀疑一切

现象1:代码insert了一条mysql记录,并且有insert的log, 且有mysql给出的耗时, 但记录缺失。 现象2:百分之百没有业务逻辑会去删除这条重要记录。 现象3:人为不会用命令行去删除这条记录。 现象4:自增id在这条记录处缺失,不连续。 怀疑a: 是不...

2019-10-25 20:50:18

阅读数 406

评论数 0

原创 最近碰到mysql覆盖写的低概率问题

最近碰到一个低概率问题: 10 加40 加60 预期结果是110, 但最终实际结果是50 单机单进程场景,来看下: func proc() { amount := queryAmountFromDb() begin lock begin ...

2019-10-18 22:52:11

阅读数 562

评论数 1

原创 金额抵扣顺序的测试代码

写个程序,测一个小功能, OK: package main import ( "fmt" "sort" ) type Money struct { Principal int // 第二优先级 Interest...

2019-10-12 23:08:41

阅读数 904

评论数 2

转载 MYSQL 插入数据主键id不连续

转载地址:http://hebhengsheng.com/ddv1999/article/details/79600074 前提情况 结构 mysql> desc tt1; +-------+-------------+------+-----+---------+----...

2019-09-28 22:03:43

阅读数 632

评论数 2

原创 mysql的decimal长度之坑------Out of range value for column xxx

踩了个坑, 来看看: CREATE TABLE x ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, cost DECIMAL(2, 1) NOT NULL ); 然后: mysql> INSERT I...

2019-09-21 22:42:03

阅读数 564

评论数 7

原创 ssh连接不上

之前执行ssh ip命令一直ok, 最近换环境了, 执行ssh ip命令, 登录不了, 卡住。 man一下, 知道有个-v的用法: -v Verbose mode. Causes ssh to print debugging messages about its p...

2019-09-15 09:58:01

阅读数 600

评论数 0

转载 Golang 入门 : 切片(slice)

转载地址:http://www.jianshu.com/p/354fce23b4f0 切片(slice)是 Golang 中一种比较特殊的数据结构,这种数据结构更便于使用和管理数据集合。切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数 append() ...

2019-09-14 10:32:35

阅读数 248

评论数 0

原创 mysql分布式锁的坑------ 墨菲定律:有可能出错的事情,终将出错

用mysql唯一key做分布式锁, 虽然简单, 但坑太多, 来看看: 1. 在高并发场景下, 用mysql做分布式锁, 简直是想找死。 这种问题, 不要选mysql分布式锁, 别作死。 2. 业务准备释放锁的时候, 进程被正常重启了, 或者异常崩溃了,或者掉电了, 锁永远...

2019-09-01 22:26:35

阅读数 749

评论数 0

转载 数据库分库分表思路

转载地址:http://www.cnblogs.com/butterfly100/p/9034281.html 一. 数据切分 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引...

2019-08-30 22:56:02

阅读数 573

评论数 0

原创 go的依赖包管理方式: 1. go get 2. dep/vendor 2. go mod

不太喜欢写C/C++的makefile 来说说go的依赖包管理的几种方式: 1. go get xxx (官方) 拉下来的包会放在GOPATH/src目录下,如果没有src,那么会生成src目录, 简单。 2. dep/vendor(准官方,非官方) 要求项目工...

2019-08-30 22:36:08

阅读数 335

评论数 2

转载 为什么遍历Go-map无序,而且每次不固定?

转载地址:http://www.jianshu.com/p/698d460386c3 问题抛出 直接上代码 package main import ( "log" ) func main(){ m := make(map[int]string...

2019-08-11 09:16:12

阅读数 355

评论数 4

原创 golang map和C++ map的一点小区别: m[xxx]形式的访问

golang map和C++ map有很多区别, 比如: 1. golang map是hash map, 而C++ map是red-black-tree map 2. golang map是无序的, 且每次遍历不稳定一致, 而C++ map是有序的, 且每次遍历稳定一致 ...

2019-08-11 09:09:02

阅读数 341

评论数 0

提示
确定要删除当前文章?
取消 删除
盛天集团投注 盛天集团导航网址 盛天集团怎么样 盛天集团公司在哪里 盛天集团信誉好吗 盛天集团安全吗 盛天集团靠谱吗 恒达集团 恒达集团注册 恒达集团开户