
go语言
it噩梦
好记性不如烂笔头
展开
-
golang消费kafka实现聚合日志
背景现状企业开发中会有很多服务,同时会发布多个环境,环境就代表着多个服务器,每次查看日志,先查看docker发布到了哪个服务器上,然后再找到服务器,很繁琐。消息异步存储,通过kafka接受消息日志,用golang写的一个中间件去消费,生成对应的服务日志文件,然后将中间件改成linux 下 systemctl 命令,把配置发到服务外面,每次更新文件,重启systemctl 服务即可。就不用每次再到各个服务器上面查看日志了。gokafka代码https://github.com/fafeidou.原创 2020-06-04 19:41:33 · 1318 阅读 · 1 评论 -
【GO学习笔记】内置函数
文章目录内置函数介绍panic/recover内置函数介绍内置函数介绍close主要用来关闭channellen用来求长度,比如string、array、slice、map、channelnew用来分配内存,主要用来分配值类型,比如int、struct。返回的是指针make用来分配内存,主要用来分配引用类型,比如chan、map、slice...原创 2020-02-05 13:16:11 · 155 阅读 · 1 评论 -
【GO学习笔记】 defer
deferGo语言中的defer语句会将其后面跟随的语句进行延迟处理。在defer归属的函数即将返回时,将延迟处理的语句按defer定义的逆序进行执行,也就是说,先被defer的语句最后被执行,最后被defer的语句,最先被执行。举个例子:func main() { fmt.Println("start") defer fmt.Println(1) defer fmt.Println...原创 2020-02-05 10:36:14 · 344 阅读 · 0 评论 -
【GO学习笔记】函数
文章目录函数定义函数的调用参数类型简写可变参数返回值多返回值返回值命名函数进阶函数类型与变量定义函数类型函数类型变量高阶函数函数作为参数函数作为返回值函数定义Go语言中定义函数使用func关键字,具体格式如下:func 函数名(参数)(返回值){ 函数体}函数的调用定义了函数之后,我们可以通过函数名()的方式调用函数。 例如我们调用上面定义的两个函数,代码如下:func ...原创 2020-02-04 22:20:38 · 132 阅读 · 0 评论 -
【GO学习笔记】 映射(map)
Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。map定义Go语言中 map的定义语法如下:map[KeyType]ValueType其中,KeyType:表示键的类型。ValueType:表示键对应的值的类型。map类型的变量默认初始值为nil,需要使用make()函数来分配内存。语法为:make(map[KeyType]ValueType, [c...原创 2020-02-02 20:57:36 · 215 阅读 · 0 评论 -
【GO学习笔记】切片
文章目录前言切片切片的定义切片的长度和容量基于数组定义切片使用make()函数构造切片声明数组和声明切片的不同nil 和空切片创建nil 切片声明空切片切片不能直接比较使用切片创建切片如何计算长度和容量使用append 同时增加切片的长度和容量切片的扩容策略切片的赋值拷贝切片遍历前言因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性。func arraySum(x ...原创 2020-02-02 17:39:32 · 194 阅读 · 0 评论 -
【GO学习笔记】数组
文章目录数组定义数组的初始化方法一方法二方法三方法四使用数组访问数组元素访问指针数组的元素把同样类型的一个数组赋值给另外一个数组编译器会阻止类型不同的数组互相赋值把一个指针数组赋值给另一个在函数间传递数组使用值传递,在函数间传递大数组使用指针在函数间传递大数组数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。数组定义var 数...原创 2020-02-02 16:07:19 · 195 阅读 · 0 评论 -
【GO学习笔记】流程控制
Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。if else(分支结构)if条件判断基本写法Go语言中if条件判断的格式如下:if 表达式1 { 分支1} else if 表达式2 { 分支2} else{ 分支3}Go语言规定与if匹配的左括号{必须与if和表达式放在...原创 2020-02-02 15:33:57 · 159 阅读 · 0 评论 -
【GO学习笔记】数据类型
Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。基本数据类型整型整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int6...原创 2020-02-02 11:19:27 · 157 阅读 · 0 评论 -
【GO学习笔记】变量和常量
文章目录标识符与关键字标识符关键字变量标准声明批量声明变量的初始化类型推导短变量声明匿名变量常量iota几个常见的iota示例:标识符与关键字标识符在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。 举几个例子:abc, _, _123, a123。关键字关键字是指编程语言中预先定...原创 2020-02-01 19:34:36 · 677 阅读 · 0 评论 -
【go语言专题】JAVA&GO通过GRPC互相调用
文章目录简介JAVA提供`provider`和`consumer``proto`文件介绍java grpc providerjava grpc consumergo提供`provider`和`consumer`生成grpc文件go grpc providergo grpc consumer测试java 提供grpc服务go 提供grpc服务参考简介语言中立,支持多种语言;基于 IDL 文...原创 2020-01-03 11:57:24 · 3167 阅读 · 6 评论 -
【go语言专题】golang如何快速读取复杂json文件
文章目录前言实践前言有时候我们需要从文件中读取josn并且反序列化为struct,首先肯定最头疼的就是创建是这个struct怎么建。今天分享的是一个工具: https://oktools.net/json2go,可以快速将json转换成go的struct。实践首先打开网站,把json输入进来,得到结构体,复制一下。创建三个文件,分别用来读json、测试、还有一个josn文件...原创 2020-01-02 14:44:21 · 2859 阅读 · 1 评论 -
【go语言专题】探究go defer修改值
TODO原创 2019-12-04 09:50:41 · 182 阅读 · 0 评论 -
【go语言专题】go如何实现java的join
TODO原创 2019-12-04 09:49:18 · 638 阅读 · 0 评论 -
【go语言专题】gorm如何实现乐观锁
TODO原创 2019-12-04 09:46:54 · 2439 阅读 · 4 评论