请稍侯

mysql 两阶段提交

什么是两阶段提交 两阶段提交是mysql在使用innodb引擎时,为了提供crash-safe 能力而设计的,两阶段提交涉及两个日志 server层的逻辑日志 bin log(归档日志) 和 innodb引擎层的物理日志redo log , redolog 存在prepare和commit两个...

golang中 select 关键字的实现

下图概括了select关键字的实现: select 在go中,通过select可以实现等待多个channel达到就绪状态,select中的case都要关联到channel相关的读写操作。 select 中每个case都会生成一个对应的scase结构体,结构体定义如下 // Select ...

go服务优化技巧

简介 本文介绍go服务可能会用到的几个优化技巧 技巧1: sync.Pool 池化某些对象,实现复用 池化后进行对象复用,可以减少对象重复创建的开销,并且可以减轻gc的压力。 使用示例: package main import ( "fmt" "sync" ) var bufpoo...

go unsafe 注释翻译和实践

背景 翻译go unsafe包中的部分注释,学习unsafe包的使用 https://golang.org/src/unsafe/unsafe.go 注释翻译 // Copyright 2009 The Go Authors. All rights reserved. // Use of...

go append 使用陷阱

问题 请大家思考下如下代码的输出结果, package main import "fmt" func main() { a := []byte("aa") b := append(a, 'b') c := append(a, 'c') fmt.Println(string(a),...

[golang踩的坑] ioutil.ReadAll 会清空对应Reader

问题 在golang web后台开发中,为了能够随机采集小部分请求case, 在框架里统一加了部分请求详细信息上报的逻辑,其中用到了,body, err := ioutil.ReadAll(ctx.Request.Body) 来读取请求body里的内容, 后面业务逻辑中再取body内容时取出来...

nginx proxy_cache指令集详解

介绍 在使用nginx做反向代理时, 部分业务场景可能可以使用proxy_cache来降低后端的压力, nginx 提供了丰富的指令来配置符合业务场景的cache策略。 下面分别介绍下nginx proxy_cache相关的指令和用法 指令介绍 1. proxy_cache Synt...

nginx error_page指令配置

背景介绍 在服务改造优化上线过程中,可能需要用之前的服务对新服务做容错,我们在nginx代理层增加了 error_page 403 404 408 500 501 502 503 504 @backend2; 当新服务出现403时,用backend2来容错,backend2正常返回了...

Nginx Proxy_next_upstream

介绍 在使用nginx做代理时,为了容错单点故障,保证服务高可用,可以通过proxy_next_upstream指令来实现某些错误时进行请求重试, 下面详细介绍下proxy_next_upsream相关的几个指令 proxy_next_upstream Syntax: proxy_next_...