随笔分类 -  后端

后端开发
摘要:今天和大家聊聊作为一个后端开发,在实际工作中,我们如何打造一个高并发的系统? 如下图所示,大概有六个层面,我们结合具体的场景直播间签到去一一细说。 一、前端 1、打散请求:即把用户的接口分散一点去请求后端,尽量不要集中在某一时刻。 场景:比如直播间讲师发起了一个签到,用户去点击签到,调用签到请求接口 阅读全文
posted @ 2025-01-23 17:49 snail_lie 阅读(1603) 评论(6) 推荐(5) 编辑
摘要:在我们业务快速发展的过程中,数据量必然也会迎来突飞猛涨。那么当我们的数据量百倍、千倍、万倍、亿倍增长后,原有的单表性能就不能满足我们日常的查询和写入了,此时数据架构就不得不进行拆分,比如单表拆分成10张表、100张表、单个月分多张表等等。下面我们针对具体案例分析下这种情况。 一、现状分析 直播签到业 阅读全文
posted @ 2025-01-22 22:45 snail_lie 阅读(65) 评论(0) 推荐(0) 编辑
摘要:一、使用场景 试想一个场景,有一个配置服务系统,里面存储着各种各样的配置,比如直播间的直播信息、点赞、签到、红包、带货等等。这些配置信息有两个特点: 1、并发量可能会特别特别大,试想一下,一个几十万人的直播间,可能在直播开始前几秒钟,用户就瞬间涌入进来了,那么这时候我们的系统就得加载这些配置信息。此 阅读全文
posted @ 2024-10-27 22:17 snail_lie 阅读(605) 评论(0) 推荐(2) 编辑
摘要:一、kafka副本机制 所谓的副本机制(Replication),也可以称之为备份机制,通常是指分布式系统在多台网络互联的机器上保存有相同的数据拷贝。kafka的副本概念实际上是在分区(partition)层级下定义的,每个分区配置有若干个副本。根据 Kafka 副本机制的定义,同一个分区下的所有副 阅读全文
posted @ 2024-08-07 15:47 snail_lie 阅读(91) 评论(0) 推荐(0) 编辑
摘要:一般高并发的业务都是某个时间段的请求量特别大,比如本人负责的直播业务,基本上一天就两个高峰段:早上和晚上的特定时间段。其它的时间里,流量基本都比较平稳。那么面对流量高峰,我们可以采取哪些措施呢?常见的有服务器和DB提前扩容、监控告警(盯监控)、流量削峰、加缓存、网关限流、服务降级等措施,具体问题具体 阅读全文
posted @ 2024-07-30 22:21 snail_lie 阅读(160) 评论(0) 推荐(0) 编辑
摘要:数据聚合处理,指的是在某个请求或者脚本处理中,我们不会把这个数据立刻响应给前端或者立刻发送给下游,而是对数据先进行聚合处理一下,等到达某个阈值(时间或者量级),再响应给前端或者发送给下游。 举个实际的业务场景:直播间有一个做任务的功能,用户满足购买了多少金额我们就会给该用户发放一些奖励。此时如果有用 阅读全文
posted @ 2024-07-27 21:19 snail_lie 阅读(81) 评论(0) 推荐(0) 编辑
摘要:一、选择GO的原因 作为一个后端开发,日常工作中接触最多的两门语言就是PHP和GO了。无可否认,PHP确实是最好的语言(手动狗头哈哈),写起来真的很舒爽,没有任何心智负担,字符串和整型压根就不用区分,开发速度真的是比GO快很多。现在工作中也还是有一些老项目在使用PHP,但21年之后的新项目基本上就都 阅读全文
posted @ 2024-05-19 23:25 snail_lie 阅读(703) 评论(2) 推荐(1) 编辑
摘要:缓存击穿、缓存穿透、缓存雪崩是使用Redis的三个经典问题,上篇文章讲了缓存击穿,今天就讲下剩下的两个问题。 一、缓存穿透 定义:缓存穿透是指查询一个根本不存在的数据,缓存层和DB层都不会命中。这样缓存永远不会生效,这些请求最终都会访问数据库。引起DB的压力瞬间变大,导致服务不可用。 问题:试想一个 阅读全文
posted @ 2024-05-12 22:07 snail_lie 阅读(88) 评论(0) 推荐(0) 编辑
摘要:缓存击穿,Redis中的某个热点key不存在或者过期,但是此时有大量的用户访问该key。比如xxx直播间优惠券抢购、xxx商品活动,这时候大量用户会在某个时间点一同访问该热点事件。但是可能由于某种原因,redis的这个热点key没有设置,或者过期了,那么这时候大量高并发对于该key的请求就得不到re 阅读全文
posted @ 2024-05-05 20:11 snail_lie 阅读(64) 评论(0) 推荐(0) 编辑
摘要:工作7年有余了,B端和C端业务都做过不少,打算整理分享一些自己在实际工作中所遇到的高并发的场景和解决方案,也是对自己本人职业生涯中的一些经验的总结和感悟。与其他博文略有不同的是,这些基本上都是自己实际工作中遇到的,并且线上的解决和处理方案,即真正的理论和实践的结合。 先交代下背景,本人目前所负责的业 阅读全文
posted @ 2024-05-04 23:05 snail_lie 阅读(26) 评论(0) 推荐(0) 编辑
摘要:这两天处理一个现网的MySQL慢查询工单,学到了一个好用的MySQL函数:cast。事情是这样的: 我们有两张表 t_user 和 t_rule 表,需要关联这两张表去查询,关联字段是 t_user 表的主键id,int型,和t_rule表的 v0字段,varchar(32)。 下面是未走索引的sq 阅读全文
posted @ 2022-11-17 11:48 snail_lie 阅读(357) 评论(0) 推荐(0) 编辑
摘要:最近参与了开发了几个新项目,其实每次上新项目的时候,都会发出感慨:搞新项目中最难的其实都不是写代码,而是部署环境,因为每次部署环境都会遇到各种各样的环境问题,比如代码更上去后不生效、请求打不到机器上、调用数据库连接、内网接口等访问不通、灰度配置不生效等问题,所以每次都要和运维老哥一起掰扯好几天。好了 阅读全文
posted @ 2022-09-04 17:40 snail_lie 阅读(456) 评论(0) 推荐(0) 编辑
摘要:作为一个5年的phper,这两年公司和个人都在顺应技术趋势,新项目慢慢从php转向了go语言,从2021年到现在,笔者手上也先后开发了两个go项目。在学习go语言的过程中也学习并总结了一些相关的东西,这篇文章就分享下自己踩过的一些坑吧。 1、函数的写法 问题: func main() { fmt.P 阅读全文
posted @ 2022-06-07 15:36 snail_lie 阅读(60) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示