Golang在京东列表页实践总结:描述了目前的状况和为什么选择Go语言作为服务端语言。给出了一些设计架构图、遇到的一些问题和解决方案等。虽然没有过多的细节,但也值得一读。 我要晨读
var a, b, c = f() + v(), g(), sqr(u()) + v(); func f() int {return c}.... 这样一个复杂的变量初始化语句之后,a、b、c三个变量的值是多少呢?如果感觉迷惑,可以来看看这篇post:“理解Golang语句中的求值顺序”。 我要晨读
Go语言最有用的特性是将并发作为第一支持的语言,使用协程goroutine,非常容易实现代码的并发,这使得Go成为网络类应用的重要选择,本文以银行转账为例,阐述了Go1.5新版本中如何使用协程实现并发。该文还指出了在Go1.5版本之前默认所有协程只是运行在单个进程,并不支持多核CPU并行计算,1.5以后提升到支持多核。 我要晨读
Go 1.5中加入了一个experimental feature: vendor/。这个feature不是Go 1.5的正式功能,但却是Go Authors们在解决Go被外界诟病的包依赖管理的道路上的一次重要尝试。本文和大家一起来理解下vendor这个新feature。 我要晨读
是否担心自己的Go服务挂掉?supervisor是一个unix的系统进程管理软件,可以用它来管理apache、nginx等服务,若服务挂了可以让它们自动重启。当然也可以用来管理golang的进程。本文介绍如何使用 supervisor 管理 golang 进程。 我要晨读
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案相比,Consul的方案更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案等。本文是Consul的入门介绍,并用一些例子说明如何使用Consul实现服务的注册和发现。 我要晨读
无论使用任何编程语言开发应用,都离不开配置数据。配置数据提供的形式有多样,不外乎命令行选项(options)、参数(parameters),环境 变量(env vars)以及配置文件等。Golang也不例外。本文带领大家小结Golang程序配置方案。 我要晨读
在一般人的眼中,“并行”就是并行,即你干你的,我干我的,两个“并行”的执行过程可能是两条毫无瓜葛的平行线,也可能是有交叉,但瞬即分开的两条线。不 过在程序员的世界里,有关“并行”的概念却有两个单词:Concurrency和Parallelism,对应的比较主流的中文翻译为并发 (Concurrency)和并行(Parallelism)。结合现实例子谈并发和并行。 我要晨读
超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的鉴定。HTTPS连接经常被用于万维网上的交易支付和企业信息系统中敏感信息的传输。HTTPS不应与在RFC 2660中定义的安全超文本传输协议(S-HTTP)相混。本文讲解https原理以及golang基本实现。 我要晨读
在GopherCon2015开幕之 际,Google Go Team终于放出了Go 1.5Beta1版本的安装包。因为Go 1.5变动太大,需要更多时间来准备这次发布(fix bug, Write doc)。关于Go 1.5的变化,之前Go Team staff在各种golang技术会议的slide 中暴露不少。这篇文章就想和大家一起浅显地体验一下go 1.5都给gophers们带来了哪些变化吧。 我要晨读
Go1.5 改进摘要:纯Go(+少量汇编)实现 runtime 和 编译器、改进 垃圾回收器, 支持 并发 (有个指标好像是 停顿在 10 毫秒以内)、GOMAXPROCS 默认值改为 CPU 核数 等,更多改进和变化,查看文章。 我要晨读
一致性哈希可用于解决服务器均衡问题。用Golang简单实现了下,并加入了权重。可采用合适的权重配合算法使用。本文基本是代码,有兴趣的或需要的拿走…… 我要晨读
jpg和png 图片很常见,Go 编程中可能需要读取或生成这些类型的图片。Go 标准库提供了相应的包来处理这些问题。本文介绍 golang中image/jpeg包和image/png包用法。 我要晨读
golang中sync包实现了两种锁Mutex (互斥锁)和RWMutex(读写锁),其中RWMutex是基于Mutex实现的,只读锁的实现使用类似引用计数器的功能。本文介绍golang中sync.RWMutex和sync.Mutex区别。 我要晨读
上一篇go语言nsq源码解读-基本介绍,介绍了最基本的nsq环境搭建及使用。在最后使用时,我们用到了几个命令:nsqlookupd、nsqd、nsqadmin、curl及nsq_to_file,并看到用curl命令写入的几个”hello world”被nsq_to_file命令保存在了硬盘文件中。本节中,将讲述这几个命令的作用、用法。 我要晨读
go语言nsq源码解读序列晨读:NSQ是由知名短链接服务商bitly用Go语言开发的实时消息处理系统,具有高性能、高可靠、无视单点故障等优点,是一个非常不错的新兴的消息队列解决方案。本文对nsq进行基本介绍。 我要晨读
项目中,经常会遇到不同类型切片之间的转换,一般的做法是遍历转换,这种方式不通用。本文介绍:将 []T 切片转换为 []byte,将 []X 转换为 []Y 切片。 我要晨读
Go中连接数据库的连接池:当你需要和数据库通信时,就会从连接池里面取出一个连接,和数据库交互。使用完的闲置的连接会回到连接池,等待下一次的调用。如果连接池里面没有闲置的连接,会自动创建一个新的连接出来。本文探讨Go连接MySql数据库too many connections的问题。 我要晨读