首页
学习
活动
专区
工具
TVP
发布

poslua

一个程序员的自我涂鸦
专栏作者
34
文章
77255
阅读量
16
订阅数
ln 强制覆盖 symlink 失败问题研究
最近公司 CI 升级,将 docker 基镜像由原先的 debian 切换到了 ubuntu,导致应用一旦成功启动之后,再次执行重启将会持续失败。查看日志,发现打印 ln: failed to access '/tmp/access.log/stdout': Not a directory
poslua
2023-03-08
1K0
Gzip 的一个坑
我们的项目里为了方便部署,swagger 文档是通过 gzip 压缩后,被植入到程序里的。其实这个思路源自于 gRPC ProtoBuf fileDescriptor[1]
poslua
2021-09-01
5250
Uber Cadence 学习
"Cadence is a distributed, scalable, durable, and highly available orchestration engine to execute asynchronous long-running business logic in a scalable and resilient way. "
poslua
2021-07-14
2.6K0
Nginx Buffer 机制引发的下载故障
前几天,接到研发同事反馈,内网通过 Nginx 代理下载 OSS 的大文件时,老是会断,而在服务器上下载时却很正常,非常奇怪。原本以为可能和 VPN 有关,经确认排除嫌疑。彷徨了许久,最后发现是 Nginx Buffer 的锅。下面就来聊聊这个问题是怎么发生的。
poslua
2021-04-22
1K0
如何调试 Go mod 的各种异常
Go mod 自从诞生之日就带来了太多太多的争议,当然不能否认它的设计初衷是好的。然而在调试其各种异常时,却浪费了太多开发者的时间。可以毫不客气的说,从来没有一种语言的版本管理,能让人如此崩溃。
poslua
2020-11-05
1.8K0
Lua table 如何实现最快的 insert?
且不管他这 "5000" 并发是怎么计算出来的。今天,我们就来探讨下 table insert 最快的方法。
poslua
2020-03-18
2.3K4
Nginx vs Envoy vs Mosn 平滑升级原理解析
本文适合对 Nginx 实现原理比较感兴趣的同学阅读,需要具备一定的网络编程知识。
poslua
2020-01-02
2.8K1
VS Code 快速查看 Golang 接口
使用 vscode 阅读 Go 项目源码时,有个不太方便的地方,就是跟踪 interface 的实现。vscode 只能追到 interface 定义的地方,而无法定位到其具体的实现。比如,我在追 etcd 关于 revision 的读取的时候只能追到这里:
poslua
2019-12-10
6K0
关于 etcd 的一些谣言
这是一个被广为流传的误解,众所周知 etcd 使用 Raft 协议来解决数据一致性问题。一个 Raft Group 只能有一个 Leader 存在,如果一旦发生网络分区,Leader 只会在多数派一边被选举出来,而少数派则全部处于 Follower 或 Candidate 状态,所以一个长期运行的集群是不存在脑裂问题的。etcd 官方文档也明确了这一点:
poslua
2019-12-10
4.4K2
聊一聊字符串内部化
字符串作为一种不可变值类型,在多数的语言里,其底层基本都是个只读的字节数组:一旦被创建,则不可被改写。正是因为其只读特性,如果有大量相同的字符串需要处理,那么在内存中就会保存多份,显然是非常浪费内存的。
poslua
2019-08-21
5270
线上一次大量 CLOSE_WAIT 复盘
最近,我在压测线上的一个长连接服务时,发现服务端出现大量的 CLOSE_WAIT 状态长时间不会释放,并且伴随着 goroutine 暴增,这里做个复盘,介绍下排查思路。
poslua
2019-08-19
1.3K0
Go 1.12 关于内存释放的一个改进
一直以来 go 的 runtime 在释放内存返回到内核时,在 Linux 上使用的是 MADV_DONTNEED,虽然效率比较低,但是会让 RSS(resident set size 常驻内存集)数量下降得很快。不过在 go 1.12 里专门针对这个做了优化,runtime 在释放内存时,使用了更加高效的 MADV_FREE 而不是之前的 MADV_DONTNEED。具体可以参考这里:
poslua
2019-08-19
3.1K0
Golang 是否有必要内存对齐?
有些同学可能不知道,struct 中的字段顺序不同,内存占用也有可能会相差很大。比如:
poslua
2019-08-19
1.8K0
Golang RabbitMQ 故障排查一例
作为一个常识,当我们在处理一些长连接的业务时,客户端往往需要负责断线重连。比如,在我们的一个系统中,是这么处理 RabbitMQ 的断线重连的:
poslua
2019-08-19
2.3K0
Goroutine 泄露排查
我们在发布一个 go 应用时,默认都会启用两个 http handler: 一个是 pprof,方便线上动态追踪问题;另外一个是 prometheus 的 metrics,这样就可以通过 grafana 准实时的监控当前 runtime 信息,及时预警。就像下面这样:
poslua
2019-08-19
1.5K0
谈谈 Golang 中的 Data Race
我在接手其他同事的 golang 项目时,一般都会习惯性的做一个竞态检测。有时总会得到一些“惊喜”,比如像下面这段代码:
poslua
2019-08-19
3.9K0
说下 Kong 的非主流 Service Mesh 之路
在 0.13.X 版本之前,Kong 的核心域模型名为 API Object Routes,从 0.13.X 版本开始,Kong 引入了 Service/Route Object,把 API Object 标记为 deprecated。在当前的 1.1.X 版本中关于 API Object 部分的配置已经被移除了。
poslua
2019-08-19
1.1K0
Golang Dep 依赖冲突处理
对于 Golang 应用内存堆栈的监控,基本都是读取 runtime.MemStats,然后发往一些 TSDB 进行可视化展示。代码一般都是这样的:
poslua
2019-08-19
1.2K0
Kong 0.12.3 的一处内存泄漏分析
Kong 0.12.3 是最后一个以 API 形式组织接口的版本,后续的版本中 Kong 新增了 Service 和 Route 的概念,对于插件的应用规则更加复杂,当然也更为灵活。不过就我个人而言,我更喜欢直接以 API 的形式来管理接口,简单粗暴,所以也就用 0.12.3 这个版本多一些。
poslua
2019-08-19
1K0
OpenResty Con 2017 中的一个彩蛋
上周的「Ant Design」圣诞节彩蛋事件确实炸开了锅,我相信加彩蛋的初衷是好的,只是这次玩过了火。最后搞得比较重,作者不得不出来发布道歉。其实在开源软件中,加彩蛋是一种乐趣,并不为奇。那为什么这个事件会成为一个反例?我觉得@依云的看法就很好:
poslua
2019-08-19
4840
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档