会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
snail_lmz
博客园
首页
新随笔
联系
订阅
管理
2025年1月23日
如何打造一个高并发系统?
摘要: 今天和大家聊聊作为一个后端开发,在实际工作中,我们如何打造一个高并发的系统? 如下图所示,大概有六个层面,我们结合具体的场景直播间签到去一一细说。 一、前端 1、打散请求:即把用户的接口分散一点去请求后端,尽量不要集中在某一时刻。 场景:比如直播间讲师发起了一个签到,用户去点击签到,调用签到请求接口
阅读全文
posted @ 2025-01-23 17:49 snail_lie
阅读(1839)
评论(6)
推荐(5)
2025年1月22日
数据分库分表和迁移方案
摘要: 在我们业务快速发展的过程中,数据量必然也会迎来突飞猛涨。那么当我们的数据量百倍、千倍、万倍、亿倍增长后,原有的单表性能就不能满足我们日常的查询和写入了,此时数据架构就不得不进行拆分,比如单表拆分成10张表、100张表、单个月分多张表等等。下面我们针对具体案例分析下这种情况。 一、现状分析 直播签到业
阅读全文
posted @ 2025-01-22 22:45 snail_lie
阅读(165)
评论(0)
推荐(0)
2024年10月27日
go高并发之路——本地缓存
摘要: 一、使用场景 试想一个场景,有一个配置服务系统,里面存储着各种各样的配置,比如直播间的直播信息、点赞、签到、红包、带货等等。这些配置信息有两个特点: 1、并发量可能会特别特别大,试想一下,一个几十万人的直播间,可能在直播开始前几秒钟,用户就瞬间涌入进来了,那么这时候我们的系统就得加载这些配置信息。此
阅读全文
posted @ 2024-10-27 22:17 snail_lie
阅读(1035)
评论(0)
推荐(2)
2024年8月18日
go的读写锁sync.RWMutex
摘要: 有这样一个经典的读写锁问题,假设读锁和写锁之前互斥,读锁和读锁之间不互斥。现在做一个实验: 1、线程A加一个读锁 ,然后不释放; 2、然后线程B想加一个写锁,会被线程A的读锁阻塞; 3、然后有个线程C尝试去加一个读锁。 按照上面的步骤,步骤3 能加锁成功吗? 使用go语言的sync.RWMutex模
阅读全文
posted @ 2024-08-18 22:19 snail_lie
阅读(99)
评论(0)
推荐(0)
2024年8月7日
go高并发之路——消息中间件kafka(下)
摘要: 一、kafka副本机制 所谓的副本机制(Replication),也可以称之为备份机制,通常是指分布式系统在多台网络互联的机器上保存有相同的数据拷贝。kafka的副本概念实际上是在分区(partition)层级下定义的,每个分区配置有若干个副本。根据 Kafka 副本机制的定义,同一个分区下的所有副
阅读全文
posted @ 2024-08-07 15:47 snail_lie
阅读(228)
评论(0)
推荐(0)
2024年8月4日
go高并发之路——消息中间件kafka(中)
摘要: 接着上篇,我们继续聊聊kafka的那些事儿。 一、消费者组 消费者组,即 Consumer Group,是 Kafka 的一大亮点设计。一个组内可以有多个消费者或消费者实例(Consumer Instance),它们共享一个公共的 ID,这个 ID 被称为 Group ID。组内的所有消费者协调在一
阅读全文
posted @ 2024-08-04 17:04 snail_lie
阅读(187)
评论(0)
推荐(0)
2024年7月30日
go高并发之路——消息中间件kafka(上)
摘要: 一般高并发的业务都是某个时间段的请求量特别大,比如本人负责的直播业务,基本上一天就两个高峰段:早上和晚上的特定时间段。其它的时间里,流量基本都比较平稳。那么面对流量高峰,我们可以采取哪些措施呢?常见的有服务器和DB提前扩容、监控告警(盯监控)、流量削峰、加缓存、网关限流、服务降级等措施,具体问题具体
阅读全文
posted @ 2024-07-30 22:21 snail_lie
阅读(347)
评论(0)
推荐(0)
2024年7月27日
go高并发之路——数据聚合处理
摘要: 数据聚合处理,指的是在某个请求或者脚本处理中,我们不会把这个数据立刻响应给前端或者立刻发送给下游,而是对数据先进行聚合处理一下,等到达某个阈值(时间或者量级),再响应给前端或者发送给下游。 举个实际的业务场景:直播间有一个做任务的功能,用户满足购买了多少金额我们就会给该用户发放一些奖励。此时如果有用
阅读全文
posted @ 2024-07-27 21:19 snail_lie
阅读(151)
评论(0)
推荐(0)
2024年5月19日
go高并发之路——go语言如何解决并发问题
摘要: 一、选择GO的原因 作为一个后端开发,日常工作中接触最多的两门语言就是PHP和GO了。无可否认,PHP确实是最好的语言(手动狗头哈哈),写起来真的很舒爽,没有任何心智负担,字符串和整型压根就不用区分,开发速度真的是比GO快很多。现在工作中也还是有一些老项目在使用PHP,但21年之后的新项目基本上就都
阅读全文
posted @ 2024-05-19 23:25 snail_lie
阅读(885)
评论(2)
推荐(1)
2024年5月12日
go高并发之路——缓存穿透、缓存雪崩
摘要: 缓存击穿、缓存穿透、缓存雪崩是使用Redis的三个经典问题,上篇文章讲了缓存击穿,今天就讲下剩下的两个问题。 一、缓存穿透 定义:缓存穿透是指查询一个根本不存在的数据,缓存层和DB层都不会命中。这样缓存永远不会生效,这些请求最终都会访问数据库。引起DB的压力瞬间变大,导致服务不可用。 问题:试想一个
阅读全文
posted @ 2024-05-12 22:07 snail_lie
阅读(135)
评论(0)
推荐(0)
下一页
公告