架构原理
文章平均质量分 76
Shi Peng
这个作者很懒,什么都没留下…
展开
-
架构套路总结
系统的架构,主要会考虑下面5个点:高性能、高可用、可伸缩、可扩展、安全。一、高性能1、架构层面1.1、缓存1.2、异步2、代码层面2.1、多线程2.2、内存:空间换时间2.3、锁2.4、数据结构的时间复杂度3、DB层面3.1、索引3.2、SQL优化3.3、NoSQL4、附录:衡量性能指标4.1、TPS & QPS4.2、系统性能参数:CPU Load Average, CPU User Usage, 内存,网络IO,磁盘IOPS二、高可用1、冗余:数据冗余 &a原创 2021-06-14 16:21:02 · 14171 阅读 · 4 评论 -
架构学习笔记
第一篇 架构套路总纲一、网站架构的目标对架构师来说,无论架构大型网站,还是网站的某个子系统,都要考虑下面几个目标:高性能、高可用、可伸缩、可扩展、安全。1、高性能(performance):能够对于海量并发访问快速响应网站的性能优化,有下面常用的招:1.1、架构层面:1.1.1、缓存浏览器缓存、CDN缓存、应用服务器缓存(本地缓存和分布式缓存)1.1.2、异步本地队列(LinkedBlockingQueue)、分布式队列(Kafka, RocketMQ等)1.2、代码层面:1.2.1原创 2021-06-14 10:43:14 · 2848 阅读 · 0 评论 -
再学分布式事务
一、背景知识1.1、事务事务需要具备ACID:以A给B转账为例A(Atomicity,原子性):A的钱减100,B的钱多100,要么全部成功,要么全部失败C(Consistency,一致性):A减100后,B一定多了100,这个数是一致的I(Isolation, 隔离性):多个事务互相不可见(读已提交、读未提交、可重复读、可串行化)D(Durability,持久性):转账后的数据会落盘持久存储,不会丢失。1.2、分布式事务CAP理论ACID的事务理论,在单个数据库情况下没问题。但在数据库原创 2021-05-28 12:17:15 · 153 阅读 · 0 评论 -
CDN工作原理
假设你要访问的加速域名为 www.a.com,他已接入到了CDN网络,当北京的用户向这个域名发起http请求时,处理流程如下:1、当用户(北京)访问域名www.a.com下的指定资源时,请求首先会发送到 LDNS(本地DNS)进行域名解析请求2、LDNS服务检查他的缓存中是否有 www.a.com 的IP地址记录,如果有,直接返回给用户;如果没有,则向网站授权的DNS发送查询请求3、当授权的DNS解析 www.a.com 时,返回该域名CNAME 即www.a.tbcdn.com 对应的IP地址4原创 2021-04-13 11:10:08 · 750 阅读 · 0 评论 -
Domain-Driven Design 学习笔记
参考链接:https://tech.meituan.com/2017/12/22/ddd-in-practice.html一、前言早在20世纪,软件设计人员就已经意识到领域建模与设计的重要性,并形成一种思潮。Eric Evans将其定义为领域驱动设计(Domain-Driven Design, 简称DDD)。在互联网”小步快跑,迭代试错“的大环境下,DDD似乎是一种“古老而缓慢”的思想。然后,互联网也逐渐深入实体经济,业务日益复杂,所以在开发中也越来越多地遇到传统行业软件开发中所面临的问题,这时可以用原创 2020-12-07 15:47:47 · 404 阅读 · 0 评论 -
四层负载与七层负载的区别
一、什么是负载均衡将大量的并发请求转给后端多个节点处理,减少工作响应时间,后端节点处理完再经过负载均衡返回给用户。目前负载均衡大多数用于提高如Web服务器、FTP服务器等Internet服务器程序的可用性和可伸缩性。二、负载均衡的分类1、二层负载均衡(MAC地址)根据OSI模型分的二层负载,一般用虚拟mac地址的方式,外部对虚拟MAC地址请求,负载均衡接受后,分片后端实际的MAC地址响应。2、三层负载均衡(IP)一般采用虚拟IP的方式,外部对虚拟IP地址请求,负载均衡接收后,分配后端实际的IP原创 2020-09-23 18:11:42 · 7037 阅读 · 2 评论 -
分布式事务及解决方案
一、分布式事务相关理论1. 数据库事务原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily),简称就是ACID。考虑场景:假如数据库在提交事务的时候突然断电,那么它是怎么样恢复的呢? 为什么要提到这个知识点呢? 因为分布式系统的核心就是处理各种异常情况,这也是分布式系统复杂的地方,因为分布式的网络环境很复杂...原创 2019-03-10 14:09:26 · 224 阅读 · 0 评论 -
微服务学习笔记
一、微服务简介现在主流的设计一般会采用微服务架构。其思路不是开发一个巨大的单体式应用,而是将应用分解为小的、互相连接的微服务。一个微服务完成某个特定功能,比如乘客管理和下单管理等。每个业务逻辑都被分解为一个微服务,微服务之间通过REST API通信。一些微服务也会向终端用户或客户端开发API接口。但通常情况下,这些客户端并不能直接访问后台微服务,而是通过API Gateway来传递请求。API...原创 2019-03-03 11:41:19 · 299 阅读 · 0 评论 -
DNS解析过程
在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址的映射关系,如果有,就调用这个IP,完成域名解析。如果hosts中没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址的映射关系,如果有,直接返回,完成域名解析。如果也没有,则会找TCP/IP参数中设置的首选DNS服务器,在此,我们叫它做本地DNS服务器,此服务器收到查询时,如果...原创 2019-02-26 22:06:27 · 169 阅读 · 0 评论 -
分布式事务
分布式事务场景,如何设计系统架构及解决数据一致性问题,个人理解最终方案把握以下原则:大事务=小事务(原子事务) + 异步(消息通知),解决分布式事务的最好办法就是不考虑分布式事务,将一个大的业务进行拆分,整个大的业务流程,转化为若干个小的业务流程,然后通过设计补偿流程,从而达到数据的最终一致性。一。事务(transaction)及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有...原创 2019-02-26 21:55:17 · 173 阅读 · 0 评论