摘要: sync.Pool 是 Go 中用于对象复用的工具,可减少频繁创建和销毁对象的开销,从而优化内存使用和降低 GC 压力。本文通过分析其用法、真实案例及源码结构,详细解读了 sync.Pool 的读写流程及其背后的高效设计思想,为性能优化提供了实用参考。 阅读全文 »
posted @ 2025-01-24 14:05 思wu邪 阅读(225) 评论(2) 推荐(1) 编辑
摘要: 合并编译通过将微服务的远程调用优化为本地函数调用,显著降低CPU开销和容器资源需求,但需权衡服务隔离、版本管理等挑战,适用于资源密集、调用关系紧密的场景。 阅读全文 »
posted @ 2025-01-22 20:46 思wu邪 阅读(166) 评论(0) 推荐(0) 编辑
摘要: RPC项目中长连接和短连接各有优劣,长连接适用于少量客户端,提高效率;短连接则更适合大量客户端,避免服务器过载。结合L4和L7负载均衡,合理选择连接方式,提升系统性能和稳定性。 阅读全文 »
posted @ 2025-01-16 21:34 思wu邪 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 在 Golang 中,Timer 和 Ticker 是常用的定时器工具,但它们的使用易出错,尤其是初学者。本文将深入探讨定时器的正确使用方式、常见误区,并通过源码解读帮助你更好地理解它们的工作原理。 阅读全文 »
posted @ 2025-01-06 23:41 思wu邪 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 在 Go 1.23 之前,正确使用 Timer.Reset 是一个挑战,因为 Stop 和抽取操作之间的状态可能不一致,导致定时器异常触发。最好的做法是避免复用定时器,每次都创建一个新的定时器,这样代码更简洁、健壮,也更容易维护。 阅读全文 »
posted @ 2025-01-06 00:45 思wu邪 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 持续更新中|关于重构的一点简单的思考 当前工作的组内,由于业务开启的时间正好处于集团php-》go技术栈全面迁移的时间点,组内语言技术栈存在:php、go两套。 因此需求开发过程中通常要考虑两套技术栈的逻辑,一些基础的逻辑也没有办法复用。 在这样的背景下,技术栈从php迁移到go这样的重构是一个时不 阅读全文 »
posted @ 2025-01-05 15:01 思wu邪 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 秒杀场景的设计思考 在学习Redis的之后,一个绕不开的话题就是秒杀系统的设计。本文将从下面几个方面展开一下个人简单的理解: 秒杀场景的介绍 设计的核心思路 怎么限流、削峰、异步 planB 总结 ‍ 秒杀场景的介绍 秒杀场景是大家常说的高并发场景,但是实际上其与单纯的高并发还有一点不同,主要区别就 阅读全文 »
posted @ 2024-12-29 21:46 思wu邪 阅读(20) 评论(0) 推荐(0) 编辑
摘要: MySQL分页性能思考 关键词:深度分页 背景 最近有一个需求:在后台管理页面中,需要展示产品信息的列表。 之前版本开发中产品信息是用户填写完所有字段之后能进行保存。在之前的基础上需要支持用户不完全填写字段进行展示和保存的功能。 一个很简单的想法是为空也直接保存就可以了,但是由于之前的开发中MySQ 阅读全文 »
posted @ 2024-12-22 00:38 思wu邪 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 关于分布式锁的的思考 结论先行: 对于分布式锁我们在考虑不同方案的时候需要先思考需要的效果是什么? 为了效率(efficiency),协调各个客户端避免做重复的工作。即使锁偶尔失效了,只是可能把某些操作多做一遍而已,不会产生其它的不良后果。比如重复发送了一封同样的 email(当然这取决于业务应用的 阅读全文 »
posted @ 2024-12-21 14:09 思wu邪 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 关于接口升级版本的一些思考 在一次需求开发的过程中,涉及了整个链路中多个服务的接口改动,因为涉及接口还是线上访问的主接口,改动需要慎重,于是对接口发版的顺序引发了自己的一些思考。 ‍ 什么样的接口改动可以直接发版,不用关注顺序 应该是保持”前后向兼容“的接口可以直接发版。 对于接口,有两个概念:调用 阅读全文 »
posted @ 2024-12-17 20:59 思wu邪 阅读(23) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示