小Cの已经记不起来的博客

↓ 向下滚动

正则表达式进阶:文件上传 匹配技巧

正则表达式进阶:文件上传 匹配技巧

阅读更多

配置中心:写给初学者的通俗解释

配置中心:写给初学者的通俗

阅读更多

用 Docker 搭建消息队列的完整流程

用 Docker 搭建消息队列的完整流程 起因 前阵子手头有个小项目,A 服务生成任务,B 服务慢慢消化。一开始图省事直接 HTTP 互调,结果 B 那边一卡,A 跟着超时,重试逻辑写了一坨还是不痛快。索性上消息队列。本来打算直接在机器上装个 RabbitMQ,结果看了一眼安装文档,还得先装 Erlang,就这依赖关系,算了,还是别折腾宿主机了。 下面是实测可用的搭建方式,需要借助 docker,...

阅读更多

从零实现一个简易的熔断

从零实现一个简易的熔断

阅读更多

Nginx 反向代理 幂等设计 配置详解

Nginx 反向代理 幂等设计 配置详解 前阵子排查了一个挺恶心的问题:用户点了一次支付,结果后台生成了两笔扣款单,而且应用日志干干净净,根本找不到重复请求的痕迹。查了一整天才定位到,锅在 Nginx —— 某台机器的配置里不知道哪位前辈抄了一行 nonidempotent,上游超时之后,Nginx 把这笔 POST 原样又发给了备机。代理层一个不起眼的重试行为,直接把没做幂等保护的接口打穿了。 ...

阅读更多

Nginx 反向代理 文件上传 配置详解

Nginx 反向代理 文件上传 配置详解 前两天给一个文件服务套了层 Nginx 反向代理,挂到公网域名下面,小文件传得好好的,同事一传几百 MB 的视频就开始报错,浏览器里就给个 413,后端日志里连请求的影子都没有。看了一眼 Nginx 的 error.log,一行 client intended to send too large body,得,又是 clientmaxbodysize 这玩...

阅读更多

Kubernetes 日志采集 配置避坑指南

Kubernetes 日志采集 配置避坑指南 最近给集群上日志采集,本来以为写个 DaemonSet 跑个 Fluent Bit 就完事儿了,结果日志不是缺、就是乱、要么就是疯狂重复,前前后后折腾了快一个礼拜... 把踩过的坑都记在这了,配置全部实测能跑,直接抄就行,不谢。 先搞清楚运行时是啥,别拿 docker 的解析规则硬套 最开始在测试环境一切正常,因为测试集群跑的还是 docker,日志文...

阅读更多

Kubernetes 分布式锁 配置避坑指南

Kubernetes 分布式锁 配置避坑指南 起因:任务跑了两遍 前段时间把公司的一个定时任务调度器从单副本扩到了两个副本做高可用,结果没过几天,凌晨的任务在数据库里写了两遍。看日志才发现,两个 Pod 同时认为自己是“当前执行者”,说白了就是没有锁。本以为加个分布式锁五分钟的事儿,结果在 Kubernetes 里一路踩坑,forbidden、双主、锁丢失全碰上了。折腾完之后记录一下,没准儿你也能...

阅读更多

微服务架构下 熔断 的设计与权衡

微服务架构下 熔断 的设计与权衡 前段时间线上出了个事,订单服务依赖的优惠券接口突然变慢,响应时间从几十毫秒飙到十几秒,订单服务的线程池很快被这些挂着的请求占满,整个下单链路跟着一起瘫。最气人的是,优惠券服务后来自己缓过来了,订单服务却还没醒,重启了两台才救回来。事故过后我就想着把熔断这玩意儿认真补一补,查了半天资料,讲原理的文章一抓一大把,讲参数到底怎么定的却少得可怜,可能是我瞎没搜到吧...这...

阅读更多

Go 语言 链路追踪 实战:从原理到落地

Go 语言 链路追踪 实战:从原理到落地 前阵子线上一个下单接口突然变慢,用户反馈要等七八秒才有响应。这个接口一路串了订单、库存、支付三个服务,日志翻了半天,只知道确实慢,就是不知道慢在哪一段。最后我干了一件很蠢但有效的事:在三个服务里手动打时间戳日志,一条一条对出来,是库存服务里一条没走索引的 SQL。问题解决了,但这个过程实在太难受,于是决定认真搞一搞链路追踪。 结果一查资料就被劝退了一次:O...

阅读更多
未在播放