在介绍读取方法之前,首先介绍两种类型:unsafe.Pointer 和uintptr。 unsafe.Pointer代表的是任意类型的指针,它支持四种特有的操作: 任意类型的指针变量都可以转换为unsafe.Pointe…
听说string内容不能修改?我偏要改给你看!
很多文章都说,Go语言中的string类型被设计为不可修改(immutable)的。的确,从Go语法的角度来说,确实是无法修改的。比如如下代码: 那么有没有什么办法突破这个限制呢?答案是有的。 很多文章都讲过通过unsa…
记一次新老系统数据迁移过程
本文是对一次数据迁移过程的详细记录。 背景 系统重构了以后,需要把老数据迁移至新系统,并且老系统仍然需要持续运行一段时间来进行过渡,期间的产生的数据也要保持同步。同时,由于业务原因,新系统产生的部分数据也要同步回老系统,…
方法的receiver为nil的时候是否会造成panic?
以下代码是否会造成程序panic? 毫无疑问,会! 因为table只是声明了变量,但是没有赋值,此时值为零值nil,在调用对应方法时会造成nil dereference panic。 那下面的代码会panic吗? 答案是…
记一次由垃圾回收造成的诡异问题
背景 在Go程序运行的过程中,很有可能造成程序panic,并且这个panic的信息是不会被记录在日志文件中的。这种情况该怎么办?一种方法就是使用recover,通过recover来捕获panic信息,然后再写入日志文件。…
prometheus告警源码分析(一)——执行流程分析
本文根据prometheus master分支最新代码所写,commit id:dca84112a97ea7a31f2ddb2ce7cfb4f7cae91f86 告警是prometheus的一个重要功能,接下来从源码的角…
go2go安装及使用
go的泛型草案已经出来一段时间了,喜欢尝鲜的朋友想必早都已经体验过了。但是基本也都是在playground上小小的尝试了一下。在playground上只能把所有代码写在一个文件里,那有没有方法体验一下在真正的项目中应用泛…
[转]关于ip_conntrack跟踪连接满导致网络丢包问题的分析
原文地址: https://blog.51cto.com/ixdba/1737642 我们的线上web服务器在访问量很大时,就会出现网络连接丢包的问题,通过dmesg命令查看日志,发现如下信息: 这里面关键的信息是…