go
文章平均质量分 70
一只牛_007
这个作者很懒,什么都没留下…
展开
-
sarama-cluster之panic: non-positive interval for NewTicker 问题
go 常见问题记录// 报错样式:panic: non-positive interval for NewTickergoroutine 59 [running]:time.NewTicker(0x0, 0x0) D:/Go/src/time/tick.go:23 +0x14egithub.com/bsm/sarama-cluster.(*Consumer).cmLoop(0xc000212000, 0xc0002ba1e0) D:/work/mygo/p...原创 2021-03-01 15:43:59 · 902 阅读 · 1 评论 -
golang sync.Mutex互斥锁的实现原理
golang sync.Mutex互斥锁的实现原理数据结构与状态机 Lock (1)正常模式 (2) 饥饿模式 Unlocksync.Mutex是一个不可重入的排他锁。 这点和Java不同,golang里面的排它锁是不可重入的。当一个 goroutine 获得了这个锁的拥有权后, 其它请求锁的 goroutine 就会阻塞在 Lock 方法的调用上,直到锁被释放。数据结构与状态机sync.Mutex 由两个字段 state 和 sema 组成。其中 state 表示.原创 2021-02-19 14:17:29 · 826 阅读 · 0 评论 -
Go 语言标准库中 atomic.Value
在 Go 语言标准库中,sync/atomic包将底层硬件提供的原子操作封装成了 Go 的函数。但这些操作只支持几种基本数据类型,因此为了扩大原子操作的适用范围,Go 语言在 1.4 版本的时候向sync/atomic包中添加了一个新的类型Value。此类型的值相当于一个容器,可以被用来“原子地"存储(Store)和加载(Load)任意类型的值。历史起源我在golang-dev邮件列表中翻到了14年的这段讨论[1],有用户报告了encoding/gob包在多核机器上(80-core)上的性能问题,认原创 2021-02-18 14:29:34 · 370 阅读 · 2 评论 -
有关go底层原理源码解读
https://louyuting.blog.csdn.net/转载 2020-12-27 19:43:42 · 285 阅读 · 0 评论 -
Consul etcd ZooKeeper euerka 对比
这里就平时经常用到的服务发现的产品进行下特性的对比,首先看下结论: Feature Consul zookeeper etcd euerka 服务健康检查 服务状态,内存,硬盘等 (弱)长连接,keepalive 连接心跳 可配支持 多数据中心 支持转载 2020-10-27 21:07:54 · 267 阅读 · 0 评论 -
Zstd 压缩性能分析(含比较)
About ZstdZstd,全称 Zstandard,是 Facebook 于 2016 年开源的新无损压缩算法。与 zlib、lz4、xz 等当前流行的压缩算法不同,Zstd 寻求一种压缩性能与压缩率通吃的方案,而实际上它也确实做到了。在由官方所列出的表格中,可以看到,Zstd 不仅具备优秀的压缩性能,在压缩率上也有非常亮眼的表现。go库https://github.com/klauspost/compress.gitReferencehttps://facebook.gi.原创 2020-10-27 15:05:40 · 5637 阅读 · 0 评论 -
go应用程序写kafka阻塞(大坑)
由于是大数据,打日志相对麻烦,使用玄坤大法,选点打日志,才把这个bug纠出来。使用库:sarama原创 2020-09-30 11:47:28 · 1385 阅读 · 0 评论 -
go 使用sarama写入kafka数据时间戳问题
查看消息时间戳的命令:kafka-console-consumer --bootstrap-server localhost:9092 --property print.timestamp=true --topic test --from-beginning发现sarama生产者推送到kafka的CreateTime均为-1。而命令行推送到kafka的时间戳正常。原因:sarama默认支持的是0.8.2的kafka版本,而timestamp的支持是从0.10版本开始的。因此需要初始化生产者配置...原创 2020-10-23 21:26:53 · 607 阅读 · 0 评论 -
一道关于 json 和 slice 的题难倒了 80% 的人
在Go语言爱好者周刊:第 65 期刊首语发了一道题,以下代码输出什么?packagemainimport("encoding/json""fmt")typeAutoGeneratedstruct{Ageint`json:"age"`Namestring`json:"name"`Child[]int`json:"child"`}funcmain(){jsonStr1:=`{"age":14,"name":"potter...原创 2020-10-23 20:51:19 · 365 阅读 · 0 评论 -
go语言总结
1、goalng相关Q:context作用,原理,超时控制A: golang context的理解,context主要用于父子任务之间的同步取消信号,本质上是一种协程调度的方式。另外在使用context时有两点值得注意:上游任务仅仅使用context通知下游任务不再需要,但不会直接干涉和中断下游任务的执行,由下游任务自行决定后续的处理操作,也就是说context的取消操作是无侵入的;context是线程安全的,因为context本身是不可变的(immutable),因此可以放心地在多个协程中传递使用原创 2020-09-20 11:00:44 · 480 阅读 · 0 评论