Mac OSX中虽然带了 netstat
工具,可是用起来不像Linux下那么爽, 一个是慢 (netstat -p tcp | grep $PORT
),二是不能pid,所以stackoverflow上建议使用lsof
工具。
所以你可以使用下面的命令:
|
|
为了不显示端口的俗称,你可以加P
参数:
|
|
如果不想grep Listen
,可以加-sTCP:LISTEN
。
没有更多要说的了,谨记一下备用。
Mac OSX中虽然带了 netstat
工具,可是用起来不像Linux下那么爽, 一个是慢 (netstat -p tcp | grep $PORT
),二是不能pid,所以stackoverflow上建议使用lsof
工具。
所以你可以使用下面的命令:
|
|
为了不显示端口的俗称,你可以加P
参数:
|
|
如果不想grep Listen
,可以加-sTCP:LISTEN
。
没有更多要说的了,谨记一下备用。
select
和 switch
是 Go语言中进行分支操作的两个方式,各有各的应用场景。
原文地址: Golang Concurrency Tricks
Golang concurrency model based on goroutines and channels is not free from sharp edges.
This page intends both (1) to collect helpful guidelines for writing concurrent code in Go and (2) to bring up well known potential issues to attention.
原文: Idiomatic Go
什么样的代码才算最地道的Go代码? 这个问题经常被人问起,但是确不太好回答。部分原因在于我们还在摸索之中,抑或Go还是一个年轻的语言。随着语言和社区的逐渐成熟,老司机们才会对地道的Go代码达成共识。
请注意,地道的代码不是限制你的规则,而是代码指导。工作正常的代码比地道的代码更重要。因为所谓的地道,只是大家达成的一种共识,所以"不地道"的的代码不一定代表着错误。
既然没有确定的答案,我在本文中收集了相关的参考资料, 以飨读者。
利用Nginx很容易的配置反向代理和负载均衡的服务, 比如下面的配置:
|
|
它将客户端的请求转发给后台的三个服务器。 负载均衡的算法又多种, 比如轮询、least_conn、ip_hash、weight等算法,本文重点不介绍这方面的内容,而是下面的需求。
后端服务器可能返回 3XX的redirect的response, Nginx会把这个请求直接返回给客户端。现在我们的需求是让Nginx自己处理这个跳转,而客户端无感知。
原文: Lint your #golang code like a mad man!, 作者: Arsham Shirvani
我使用下面的工具来改进我的代码,除了vendor
文件夹。我的操作系统是GNU/Linux
,但是稍微修改一下脚本应该也能运行在你的操作系统上。我使用glide来处理依赖(vendor),但你也可以使用你的包依赖管理工具来替换glide nv
, 这个命令列出了所有的文件夹,除了vender (译者按: Go 1.9中可以直接使用./...
,它会排除vendor文件夹)。有些情况下glide nv
不适合,所以我使用了它的老式风格。
注意我使用$
作为shell的提示符。
如你所知, 类型别名(type aliases) 最终还是加入到Go 1.9中, Go 1.9 beta2今天已经发布了, 正式版预计8月初发布, 是时候深入了解一下它的新特性了,本文介绍的就是它的重要的新特性之一: 类型别名。
当然,如果你想尝试这些新特性,需要安装Go 1.9的版本,目前是beta2版,可以在官方网站下载。
taowen是json-iterator的作者。 序列化和反序列化需要处理JSON和struct的关系,其中会用到一些技巧。 原文 Golang 中使用 JSON 的小技巧是他的经验之谈,介绍了一些struct解析成json的技巧,以及 json-iterator 库的一些便利的处理。
有的时候上游传过来的字段是string类型的,但是我们却想用变成数字来使用。 本来用一个json:",string" 就可以支持了,如果不知道golang的这些小技巧,就要大费周章了。
参考文章:http://attilaolah.eu/2014/09/10/json-and-struct-composition-in-go/
现在 Go 1.9 beta版已发布, 正式版预期在8月初发布,让我们先来看看你Go 1.9带来了那些新特性。
原文: Advanced command execution in Go with os/exec by Krzysztof Kowalczyk.
完整代码在作者的github上: advanced-exec
Go可以非常方便地执行外部程序,让我们开始探索之旅吧。