go-simplejson 插入数组

go-simplejson是go lang语言中操作json非常方便的开源库。最近使用simplejson进行数据插入操作时遇到了问题,经过排查后最终解决。现记录如下。

·1min·李岩
go-simplejson 插入数组

http及websocket性能对比

从过往的经历中来看,使用websocket作为http协议的替代似乎是一种潮流。websocket以其小包头、全双工的优势,弥补了http协议的性能上的缺陷。对于长链接需求,完全可以在初始化时创建websocket连接,在业务交互时直接进行通信,使得通信过程更加流畅。相信在基于Quic的http3协议走向成熟应用前,websocket在性能上都具有优势。本文以golang语言为基础,构造场景进行两种协议的性能对比。

·2min·李岩
http及websocket性能对比

golang GMP

写点东西还是难,果然还是搬运工来的轻松些。今天搬运点Golang的GMP模型看看。最近在准备一篇GolangGC实践。慢慢搞吧。

前言

Golang作为语言层面支持并发的语言,使用go可以让搬砖体验飞起。但是从直觉来说,事情并没有这么简单:从操作系统层面来说,进程和线程是操作系统认可的并行机制。协程以及Golang的所谓纤程是期望一堆程序员期望将操作系统的工作拿过来,以满足一些优化的效果。所以诸如Python的协程以及Golang的纤程,总是能够对应到操作系统认可的执行单元上。对于Python的协程还好理解一些,是严格运行在自己的线程里的,只是语言层面实现了线程内的上下文切换优化。所以对于CPU密集型的操作,仅使用协程是无法达到优化效果的:这种场景下Python会推荐多进程。相比起来,Golanggo野心更大一些:期望给用户以go作为接口,在语言内实现与操作系统调度单元的交互。Golang里实际的调度模型是GMP

·3min·李岩
golang GMP

golang 封装

golang作为一种高级语言,实现了面向对象语言的封装、继承、多态的特性。本文简要介绍下golang面向对象的这些特性。

·2min·李岩
golang 封装

ratelimit服务流量限制

在日常的工作中,固定QPS或者固定并发数是常用的两个衡量系统容量时采用的流量控制手段。本文以Go语言高级编程 服务流量限制的内容为开端,对服务流量限制进行展开描述,同时对Jmetergolang ratelimit中的流量限制方法进行描述。

  1. 起因
  2. 漏桶法
  3. 令牌桶法
  4. Jmeter中流量吞吐控制
  5. golang ratelimit
·7min·李岩
ratelimit服务流量限制

org-mode使用备注

·1min·李岩
org-mode使用备注