content/discuss/2018-09-05-git-system.md
来源:『Go 夜读』微信群
func main() {
MutilParam("ssss", 1, 2, 3, 4) //[ssss 1 2 3 4]
iis := []int{1, 2, 3, 4}
MutilParam("xxxxx", iis) //MutilParam= [xxxxx [1 2 3 4]] 如何做到输出为[xxxx 1 2 3 4]
}
func MutilParam(p ...interface{}) {
fmt.Println("MutilParam=", p)
}
考点:函数变参 这样的情况会在开源类库如xorm升级版本后出现Exce函数不兼容的问题。 解决方式有两个:
//方法一:interface[]
tmpParams := make([]interface{}, 0, len(iis)+1)
tmpParams = append(tmpParams, "ssss")
for _, ii := range iis {
tmpParams = append(tmpParams, ii)
}
MutilParam(tmpParams...)
//方法二:反射
f := MutilParam
value := reflect.ValueOf(f)
pps := make([]reflect.Value, 0, len(iis)+1)
pps = append(pps, reflect.ValueOf("ssss"))
for _, ii := range iis {
pps = append(pps, reflect.ValueOf(ii))
}
value.Call(pps)
实际上都是一样原理的,也很简单的方式处理了。
git 系统都有哪一些?
更多讨论:
云服务器至少得 4核8G
无法选中一行代码发表评论/注释。
bosun 是 Time Series Alerting Framework,比较轻量级,但是文档严重滞后。
Prometheus 是用 opentsdb,有点重,还要配上 hbase,玩不转啊。
由于我们是物联网的项目,监控的指标比较多样化,tag的不确定性,应该会导致Prometheus内存耗费很大,而且prometheus采用pull的模式,虽然有pushgateway,还是挺担心的,用了prometheus后,发现业务层的监控代码也会要写的很复杂。