
go
JackLiu16
stay hungry,stay young!
展开
-
openfalcon transfer多重备份
// 将数据 打入 某个Graph的发送缓存队列, 具体是哪一个Graph 由一致性哈希 决定func Push2GraphSendQueue(items []*cmodel.MetaData) { cfg := g.Config().Graph for _, item := range items { graphItem, err := convert2GraphItem(item) if err != nil { log.Println("E:", err) continu.原创 2020-06-08 01:55:03 · 1873 阅读 · 0 评论 -
golang append及slice(len、cap)注意点
https://ask.youkuaiyun.com/questions/1057589#answer_form1、关于切片切片拥有长度和容量。切片的长度是它所包含的元素个数。切片的容量是从它的第一个元素开始数,到其底层数组元素末尾的个数。切片 s 的长度和容量可通过表达式 len(s) 和 cap(s) 来获取。来自 <https://blog.youkuaiyun.com/u0134...原创 2020-03-10 01:44:50 · 2405 阅读 · 0 评论 -
[Go语言]从Docker源码学习Go——function和method
function和method关系method是针对某一类型定义的function,function可以单独调用,method必须针对某一类型的实例进行调用//function 调用方式packageName.FuncName()//method 调用方式var t packageName.Typet.MethodName()源码func (cli *Dock...转载 2019-06-16 22:28:26 · 512 阅读 · 0 评论 -
Go语言interface详解
出处:https://www.cnblogs.com/mafeng/p/6208014.htmlinterfaceGo语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被interface的巧妙设计所折服。什么是interface简单的说,interface是一组method的组合,我们通过interface来定义对象的一组行...转载 2019-06-16 23:21:45 · 1924 阅读 · 0 评论 -
golang语言并发与并行——goroutine和channel的详细理解(一)
如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人。Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据。以下是我入门的学习笔记。Go语言的goroutines、信道和死锁goroutineGo语言中有个概念叫做goroutine, 这类似我们熟知的线程,但是更轻。以下的程序,我们串...转载 2019-06-17 00:15:21 · 396 阅读 · 0 评论 -
Golang直接操作共享内存
前言故事起源于要搭一个高性能的日志中心。当然使用了elk这一套。但是,对于logstash来说,它主要使用的是文件日志的方式了捕捉log。而写文件日志的话会非常慢。对于实时日志要处理滚动的日志更是这样,每次检查是否需要流动日志,然后打开日志,然后写入,然后关闭,当然这中间可以优化。这一切都是那么慢,发起了n个系统调用,硬盘寻道等。这时候想到了用共享内存来通信。共享内存的基本知识要使用共...转载 2019-07-24 22:06:19 · 3345 阅读 · 0 评论