获得徽章 0
同一套服务里缓存滥用真的太难维护了。。。
调用的元信息有缓存,上层提供的接口又有缓存,如果元信息的查询条件变了,需要把条件加到缓存key上时,上层接口的缓存key也要变,这种情况一旦遗漏了,就会出现诡异的查询结果不一致现象。
个人倾向于只把提供给用户的接口缓存,减少缓存嵌套,易于后期维护调整。缺点是缓存内容可能会有些大。
评论
昨天看了下http2.0协议,相对于http1.0/1.1,语义层面上没有任何改变,只是改变了数据的传输方式,定义了stream(数据流)、message(消息)、frame(帧)几个概念,stream包含一个或多个message,message包含一个或多个frame。具体原理可以参考这个链接,讲的很详细developers.google.com
1
昨天和一个做c++的同事聊天,问他平时用什么IDE,他说对IDE没啥要求,vscode就行,代码大部分都是放在开发机编译运行的,因为c++很多依赖在Mac上没有,不像其他语言有runtime。
听到runtime我突然有了以下疑惑:
1、runtime是什么?
2、runtime有什么用?
我后来也查了一些资料,有了一些基本的认识。
关于问题1,runtime翻译过来就是(程序)运行时,它可以指程序运行的一种状态;也可以指程序运行时所需要的环境;还可以指程序运行所依赖的库或指令。在不同语义环境下有不同的解释,我觉得同事说的应该更像是第二种解释。
关于问题2,很显然这个问题也就是后两种解释,用于提供运行的环境或者运行所必须依赖的库。

这么看来,任何高级语言包括c++,它们运行时都需要runtime来提供支持,只是c++需要很小的runtime即可,java,c#这类则需要一个比较大的runtime来管理诸如gc,内存分配等工作。
展开
评论
结构体中noCopy字段的作用很有意思:pkg.go.dev
评论
今天发现一个有意思的代码片段,功能是在一批有权重的ip列表中随机返回一个。
refactor于2021-12-16 23:16发布的图片
2
如何获取map内保存的数据量有多大?用json.marshal()得出字节数组就可以了。
1
最近发现服务goroutines暴增,查看goroutines的pprof后发现都集中在 读等待 上,后来才知道是因为代理服务器nginx和后端服务建立了很多长连接,每个连接都需要启动一个goroutine来处理,nginx默认不会关闭这些长链接。。。
1
context需要重新学习下
defer需要翻一下
评论
下一页
个人成就
文章被点赞 8
文章被阅读 13,554
掘力值 315
收藏集
6
关注标签
18
加入于