snowflake

分布式Id snowflake 是一种分布式id唯一算法,相比较uuid算法生成方式,snowflake生成的是一个int64大整型,并且是大致递增 我发现网上对于该算法的描述,在位数偏移上是由差异的,但是整体思路是一致的 这里的10-bit workerId在有的源码里面是分成两个 workerId 、data的5-bit大小 可以大致算一下,1毫秒1单点能生成2 ^ 12 = 4096个id,总共能部署 2 ^ 10 = 1024 个节点,也就是1毫秒最大能生成400多万个id 我按照算法思路写了如下代码 package main »

dlv

dlv 针对go语言的调试器,内部架构介绍 --headless package main import ( "fmt" ) func main() { m := 120 fmt.Printf("Hello world\n") fmt.Printf("m = %d\n", m) } 终端1 dlv debug »

go语言 nil

空指针和空接口不等价 package main import ( "fmt" ) type MyError struct{} func (p *MyError) Error() string { return "test error" } func returnsError() error { var p *MyError = nil return p } func »

vim-go debug

2018.09.04 set nocompatible filetype off set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' Plugin 'vim-airline/vim-airline' Plugin 'vim-airline/vim-airline-themes' »

go1.7 安装小记

先安装go1.4版本 因为go1.5以后的版本不再使用c语言参与,需要使用GO1.4版本的工具链接编译。 $ apt-get install gcc libc6-dev 在$HOME目录新建目录golang目录,设置环境变量 $ GOROOT=$HOME/golang/go $ PATH=$PATH:$GOROOT/bin 在 $HOME/golang下,下载1.4源码 »