摘要: 我们知道Go是自带GC的语言,在代码中调用runtime.GC()可以显式触发GC,当内存资源不足时调用可以在该时间点释放内存,但此时,由于STW机制的存在,程序性能可能短暂下降。runtime.SetFinalizer可以在内存中对象被回收前,指定一些操作。 用法介绍 函数定义如下: func S 阅读全文
posted @ 2021-11-01 20:37 g2012 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 服务端代码 一个简单的rpc server示例如下: package main import ( "log" "net" "net/http" "net/rpc" "github.com/monoxy/rpc/common" ) func main() { server := rpc.NewServ 阅读全文
posted @ 2021-05-16 22:54 g2012 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 数值越界是需要引起重视的问题,后端服务没有严格检验请求字段的取值范围,则可能引发严重的后果。 事故 例如用户购买礼物,礼物单价为20金币。有用户购买了1073741825个礼物,却只需要花费20金币,这是为何? 原因 原来系统中设定的购买数量和金币均采用了uint32,uint32的取值范围为[0, 阅读全文
posted @ 2020-11-29 11:40 g2012 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 接口的实现 Go语言中的接口变量存储了两项内容:1.当前值的类型描述,2.存储当前值。 第一部分type是接口的itable,存储接口的类型和一系列函数指针。这里的函数指针列表与接口中的函数定义一致,而不会包括类型自身的其它函数。 第二部分data存储接口的实际数据 接口存储的优化 当声明的接口为空 阅读全文
posted @ 2020-11-22 17:48 g2012 阅读(132) 评论(0) 推荐(0) 编辑
摘要: MySQL中的事务四要素 原子性(Atomicity):要么全部完成,要么全部不完成; 一致性(Consistency):事务执行前后都保持数据的完整性约束,数据的中间状态不可见; 隔离性(Isolation):事务之间不能相互影响,可以设置不同的隔离级别; 持久性(Durability):事务提交 阅读全文
posted @ 2020-11-01 14:12 g2012 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 简介 influxdb是一款流行的时序数据库应用,与prometheus最大的不同在于,influxdb采用推模型,即记录方通过调用influxdb接口,将数据保存到influxdb数据库中。prometheus则是由自身不断抓取记录方的导出数据。influxdb的查询语句与sql类似,简单易上手, 阅读全文
posted @ 2020-09-06 11:16 g2012 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 一、密码登录 1.客户端提交用户名(以手机号为例)、md5编码后的密码,以及手机号、登录平台,如下所示: { "Phone": 12345678999, "Region": 86, "Password": xfdfewr45sdf "platform": app } 2.服端处理流程伪代码为: // 阅读全文
posted @ 2020-08-16 17:38 g2012 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 参照《TCP-IP详解》一书,TCP首部格式如下: MSS选项 最常见的选项字段为最大报文段长度MSS(Maximum Segment Size),表示本端所能接受的最大TCP数据段长度。每个TCP连接通常在SYN报文中设置这个选项。由于以太网中数据帧不能超过1518个字节,其中帧头14字节,校验和 阅读全文
posted @ 2020-08-02 15:51 g2012 阅读(121) 评论(0) 推荐(0) 编辑
摘要: Linux磁盘标识有sda(系统识别的第一块磁盘)、sdb(第二块磁盘),它们以文件的形式存放于/dev下。sda1和sda2是sda磁盘上的两个分区。 lsblk命令以树形方式显示当前主机的磁盘信息。 blkid命令用来查看磁盘的UUID Linux系统下磁盘分区需要挂载到某个目录下,例如分区sd 阅读全文
posted @ 2020-08-02 13:56 g2012 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 不同情况下的git 远程跟踪分支 1 远程没有分支,本地也没有分支 git check out -b test //创建并切换到新分支 git push -u origin test //推送到远程分支,并且跟踪远程分支 2 远程已经存在分支,本地不存在对应分支: git checkout --tr 阅读全文
posted @ 2020-07-22 22:30 g2012 阅读(4971) 评论(0) 推荐(2) 编辑
点击右上角即可分享
微信分享提示