系统构架
文章平均质量分 72
华章酱
专注、极致
展开
-
数据库和缓存双写一致性
数据库和缓存(比如:redis)双写数据一致性问题,是一个跟开发语言无关的公共问题。尤其在高并发的场景下,这个问题变得更加严重。我很负责的告诉大家,该问题无论在面试,还是工作中遇到的概率非常大,所以非常有必要跟大家一起探讨一下。今天这篇文章我会从浅入深,跟大家一起聊聊,数据库和缓存双写数据一致性问题常见的解决方案,这些方案中可能存在的坑,以及最优方案是什么。转载 2024-04-11 16:32:09 · 36 阅读 · 0 评论 -
拖拽排序后端设计与实现-单表单列法
这种方式优点是,查询快,修改慢。而且,修改接口的逻辑较重,处理起来比较麻烦。在接口设计方面,我们让前端传给后端是一个偏移值(offset),offset = y - x。当元素向排序大的方向移动时,offset的为正值;若往排序小的方向移动时,offset`为负值。展示列表时,按照 index 字段进行排序即可。若需要查第n位元素时,元素位置为 index = n - 1。每个元素,都有一个字段index,表示元素的排序信息。新增元素时,序号为当前元素数据总量值。删除元素时,将大于该元素的序号,都减1。原创 2023-09-06 11:37:02 · 243 阅读 · 0 评论 -
高并发下如何保证接口的幂等性?
对于给第三方调用的接口,有可能会因为网络原因而调用失败,这时,一般在设计的时候会对接口调用加上失败重试的机制。总之,当你去设计一个接口的时候,幂等都是首要考虑的问题,特别是当你负责设计转账、支付这种涉及到 money 的接口,你要格外注意喽!当消息被其他消费者重新消费时,如果没有幂等性,就会导致消息重复消费时结果异常,如数据库重复数据,数据库数据冲突,资源重复等。这几种实现幂等的方式其实都是大同小异的,类似的还有使用状态机、悲观锁、乐观锁的方式来实现,都是比较简单的。原创 2023-01-28 22:04:17 · 2232 阅读 · 1 评论 -
高并发量网站解决方案
一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原...原创 2018-04-26 10:32:28 · 1661 阅读 · 0 评论 -
接口api开发中安全性问题
所谓接口,就是类似http://Example.com/index.php?module=users&action=info&user_id=333的请求,然后服务器端直接根据user_id来做相应的会员操作,这是及其危险的接口处理,等于把当前的会员系统全暴露出来了,只要对方改一下user_id既可操作所有会员对应的接口。一般在PC端,我们是通过加密的cookie来做会员的辨识和维...原创 2018-04-26 10:50:31 · 6088 阅读 · 0 评论 -
【高并发简单解决方案】redis队列缓存 + mysql 批量入库
需求背景:有个调用统计日志存储和统计需求,要求存储到mysql中;存储数据高峰能达到日均千万,瓶颈在于直接入库并发太高,可能会把mysql干垮。问题分析思考:应用网站架构的衍化过程中,应用最新的框架和工具技术固然是最优选择;但是,如果能在现有的框架的基础上提出简单可依赖的解决方案,未尝不是一种提升自我的尝试。解决: 问题一:要求日志最好入库;但是,直接入库mysql确实扛不住,批量入库没有问...原创 2018-04-29 14:03:46 · 4077 阅读 · 0 评论 -
高并发下的抢购、秒杀方案
抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个:1 高并发对数据库产生的压力2 竞争状态下如何解决库存的正确减少("超卖"问题)对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。重点在于第二个问题常规写法:查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否大于0处,如果在高并发下就会有问题,导致库存量出现负数 ...原创 2018-04-29 14:26:32 · 1153 阅读 · 0 评论 -
到底什么时候该使用MQ?
原文地址:http://mp.weixin.qq.com/s/Brd-j3IcljcY7BV01r712Q一、缘起一切脱离业务的架构设计与新技术引入都是耍流氓。 引入一个技术之前,首先应该解答的问题是,这个技术解决什么问题。就像微服务分层架构之前,应该首先回答,为什么要引入微服务,微服务究竟解决什么问题(详见《互联网架构为什么要做微服务?》)。 最近分享了几篇MQ相关的文章:《MQ如何实现延时消息...转载 2018-06-20 14:14:22 · 190 阅读 · 0 评论