架构设计
文章平均质量分 89
慕枫技术笔记
InfoQ签约作者,阿里云专家博主,一线大厂高级开发工程师,专注Java后端以及分布式架构,分享大厂面试经验以及简历编写指导
展开
-
每天都扫的二维码,你知道它的技术原理吗?
二维码已经成为我们日常生活中必不可少的组成部分了,登录需要扫一扫二维码、买东西付钱需要扫一扫二维码、开会签到也需要扫一扫二维码,那么如此使用的二维码技术,背后的原理是怎样的呢?本文将结合二维码的发展历程以及典型应用场景,分析二维码背后的技术原理。原创 2022-02-11 12:00:53 · 25818 阅读 · 29 评论 -
支持百万并发高性能网关设计实现系列:什么是网关?
网关是个什么东东?为什么需要网关?随着微服务架构不断兴起,以前的一个大的单体应用根据不同的业务域拆分为不同的微服务系统进行维护和部署。因此各个微服务对外提供的服务接口API会呈现出爆发式的增长,如何对于各个应用服务的接口进行统一管理成为了不可回避的问题。外部的请求想要访问内部的应用服务必须经过一系列的校验、鉴权等操作,如果吧这些操作都放到每个服务中去做明显不合理。不仅造成重复代码同时各个服务也增加了和自身业务逻辑无关的模块变得更重了,一旦增加新的校验规则,每个服务都需要进行修改,明显这不是好的设计。原创 2022-02-02 16:32:30 · 3408 阅读 · 7 评论 -
11张图深入理解分布式锁原理
单体系统中,在高并发场景下想要访问共享资源的时候,我们需要通过加锁的方式来保证共享资源并发的安全性,确保在同一时刻只有一个线程对共享资源进行操作。原创 2022-01-28 13:08:36 · 12638 阅读 · 53 评论 -
架构方案设计系列:数据库缓存数据一致性方案
在我们的实际项目中,在一些QPS比较高的场景下,经常引入缓存来缓解数据库的查询压力,以缓存的空间来换取查询效率的提升。但是一旦引入了缓存,就一定会遇到缓存中的数据与数据库中的数据如何保持一致的问题,本文就是针对两者之间的数据一致性问题进行分析,一步一步分析以及解决。为什么会出现数据不一致业务起初的时候,用户数以及业务量都还没有起来。我们可以直接使用服务从数据库中写入数据以及获取业务数据来满足业务,这时候看上去基本满足业务需要,如下所示:但是当用户数不断增加,业务量不断增加,经常出现查询缓慢的问原创 2021-10-31 15:08:16 · 1188 阅读 · 10 评论 -
偷偷看了同事的代码找到了优雅代码的秘密
对于一个软件平台来说,软件平台代码的好坏直接影响平台整体的质量与稳定性。同时也会影响着写代码同学的创作激情。想象一下如果你从git上面clone下来的的工程代码乱七八糟,代码晦涩难懂,难以阔爱站,有种想推到重写的冲动,那么程序猿在这个工程中写好代码的初始热情都没了。相反,如果clone下的代码结构清晰,代码优雅易懂,那么你在写代码的时候都不好意思写烂代码。这其中的差别相信工作过的同学都深有体会,那么我们看了那么多代码之后,到底什么样的代码才是好代码呢?它们有没有一些共同的特征或者原则?原创 2021-12-21 07:57:45 · 4482 阅读 · 64 评论 -
架构师之路系列:接口幂等性是个什么东东?如何实现接口幂等设计?
幂等实际是一个数学上的概念,在数学上如果函数满足 f(x) = f(f(x)),那么我们称函数f具备幂等性。举个栗子,假设f(x) =|x|,即函数f表示取x的绝对值,那么f(x) = f(f(x))也成立,即f(x) =||x| |。说完了幂等的原始概念,我们再来看下在编程领域,幂等指的又是什么原创 2021-12-10 08:03:49 · 2313 阅读 · 27 评论 -
如何设计一个监控平台(上篇)
在大型分布式微服务场景下,各个服务版本快速迭代,各类业务规模不断膨胀,同时监控的场景也在不断的发生变化,线上故障随时可能发生,各个平台错综复杂,如何保证线上服务稳定运行,同时提升运维效率,降低运维成本成了监控平台的挑战。原创 2021-03-31 10:14:49 · 1667 阅读 · 5 评论