![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GO
小小小小城
0.0
展开
-
golang kafka异步生产者实现
golang kafka异步生产者实现 #这里主要是使用异步的方式,发现网上这种实现方式比较少,所以自己封装了一下,主要使用的是github.com/Shopify/sarama,这个包 先拉取这包 go git github.com/Shopify/sarama 生产者实现,基本注释的东西解释的听清楚的了,感兴趣的同学可以查看下注释,同步合异步的方式都基本实现了,本文主要介绍异步的方式。 package kafka import ( "errors" "fmt" "strings" "time原创 2021-04-27 15:01:51 · 1526 阅读 · 0 评论 -
阿里一面问题总结(括号内为简略答案)
1.自我介绍 2.项目相关 3.redis中setnx会有那些问题(获取锁超时、还锁失败) 4.redis中使用过zset吗(排行榜),如果分数相同如何按时间排序,时间越早排序越靠前(core+(最大值减时间戳)) 5.http状态码502(错误网关)和504(网关超时)及403(拒绝服务) 6.gin框架都封装了什么(装饰器模式,业务逻辑通过中间件形式存在,中间件可以实现网关的路由,请求的过滤,跨域问题等) 7.mysql innodb 使用的什么索引(B+树),B+树相比于hash树及二叉树的优点在哪(原创 2021-02-25 10:53:21 · 160 阅读 · 0 评论 -
golang struct 转 map
func StructToMap(obj interface{}) map[string]interface{} { t := reflect.TypeOf(obj) v := reflect.ValueOf(obj) var data = make(map[string]interface{}) for i := 0; i < t.NumField(); i++ { data[t.Field(i).Name] = v.Field(i).Interface() } return da原创 2020-10-24 14:12:46 · 521 阅读 · 0 评论 -
go语言io常用操作
//普通形式,基本操作 func TestFileReadWriter(t *testing.T) { open, err := os.Open("E:\\log2\\mmcloudxwskillfm_2020061716.log") if err != nil { fmt.Println("打开文件失败") return } defer open.Close() file, err := os.OpenFile("E:\\log2\\TestFileReadWriter.log", o原创 2020-09-15 10:20:26 · 202 阅读 · 0 评论 -
go在range中根据下标删除切片元素报错
如果我们有这样的一个切片 list := []int{0,1,2,3,4,5,6,7,8,9,10} 出于某种原因我们要根据下标对这个切片进行过滤,而不是根据值进行过滤,过滤规则为偶数位去掉基数位保留,那么我们写出了这样的代码 for i,_ := range list{ if i%2==0{ list = append(list[:i],list[i+1:]... ) } } 当我们觉得自己成功的时候,现实给了我们沉重的打击 panic: runtime error: slice b原创 2020-07-06 16:17:59 · 966 阅读 · 2 评论 -
go 数据结构之 队列
下面先介绍下什么是队列: (1)队列是一个有序列表,可以用数组或是链表来实现。 (2)遵循先入先出的原则,即:先存入队列的数据,要先取出,后存入的要后取出。 这里用Go 实现一个一次性的队列 package main import ( "errors" "fmt" ) type Query struct { maxSize int //最大容量 array [4]int //数组 head int //队首指针 tail int //队尾指针 } //初始化一个Que原创 2020-06-23 15:09:15 · 436 阅读 · 0 评论 -
go 数据结构 之 稀疏数组
什么是稀疏数组 如果一个数组(包括多维数组)中的大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组,节约空间。 一般来说,稀疏数组的处理方法是: 1.记录数组一共有几行几列,有多少个不同的数值。 2.把具有不同值的元素的行列及记录在一个小规模的数组中,从而缩小程序的规模。 下面是代码实现 package main import "fmt" //定义存储数据的结构体 type valNode struct { row int //表示二维数组的行 clo int //表示二维数.原创 2020-06-22 16:58:27 · 132 阅读 · 0 评论 -
GO 语言总结
(这篇文章是我在看李文塔的Go语言核心编程这本书记录下来的,算是个总结吧,放便以后复习用) 一、数据类型 1.1 布尔型、字符串 1.2 整型 unit8、unit16、unit32、unit64、int8、int16、int32、int64、byte(类似uint8)、rune(类似int32)、int、uintptr(无符号整型,存放一个指针) 1.3 浮点型 float32、float64...原创 2019-11-19 16:12:32 · 450 阅读 · 0 评论