![](https://img-blog.csdnimg.cn/20201112145009905.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
小白也来学架构
记录分享自己学习架构的过程
点滴寸土
这个作者很懒,什么都没留下…
展开
-
小白也来学架构--存储高性能(五)
NoSQL: 关系型数据库成熟在强大的sql功能和ACID属性,所以广泛应用。随着数据量级的增加,业务逻辑的复杂,数据结构的多样,全文检索的性能等,出现了不同NoSQL解决方案,Not Only SQL。常见的有如下四类:1、K-V存储:解决无法存储的数据结构问题,比如Redis。2、文档数据库:解决强schema约束的问题,比如MongoDB。3、列式数据库:解决大数据场景下的IO问题,比如HBase。4、全文搜索引擎:解决全文搜索性能问题,比如Elasticsearch。...原创 2021-03-25 20:57:38 · 343 阅读 · 1 评论 -
小白也来学架构--存储高性能(四)
存储方面一般我们能想到的三个:关系型数据库、NoSQL、缓存。关系型数据库主要介绍:读写分离 和 分库分表。读写分离: 1、分散压力到多节点,存储压力未改变,包括一主一从、一主多从、多主多从。 2、考虑复制延时,从而带来复杂性,一般解决的常见方法:写操作后的读操作指定发给主服务器;读从机失败后再读一次主机;关键业务读写在从,非关键业务读写分离。分库分表:分散访问压力,分散存储压力。 1、业务分库:按照业务模块将数据分散到不同的数据库服务器。同时带来其他问题,比如:join操作(...原创 2021-03-18 20:45:12 · 303 阅读 · 0 评论 -
小白也来学架构--架构设计流程(三)
架构设计我们一般遵循这样的流程:(1)分析系统复杂性,明确和梳理出系统的复杂点。比如是业务逻辑复杂,还是性能瓶颈,是系统部署运维困难,还是可用性差等等。做好这一步,可以避免我们花费无用功,避免设计优化完毕却与实际情况大相径庭;对于多复杂点,可以排列优先级,规划和合并,同类同处理。(2)设计主要方案和备选方案。一般我们可以设计出3--5个来,各自的差异性要大,技术选型也要大胆,不要局限性,从宏观层面去分析,而不是具体的分析什么接口什么数据这样的细节。(3)评估和选择备选方案。能参与评选的,基本都是原创 2021-01-20 21:55:28 · 317 阅读 · 6 评论 -
小白也来学架构--架构设计原则(二)
架构设计原则:合适、简单、演化合适:一个落地的好的架构一定是和当前环境所匹配的,也就是相对最合适的,没有说一味的追求高新立意 或是 多牛的新技术。只有结合当前系统环境,业务分析,层次结构,开发需要,运维环境,服务资源等等约束下,选择与之相匹配的才是合适和优秀的架构设计。简单:简单一定高于复杂。复杂包括结构的复杂性 和 逻辑的复杂性,而复杂所带来的就是各种成本的增加,对应的上层合适中,就是系统环境需求复杂,比如服务器资源增多,运维成本增大;业务逻辑复杂,拉长逻辑战线;开发复杂,迭代速度慢,成本高...原创 2021-01-20 21:30:34 · 134 阅读 · 1 评论 -
小白也来学架构--架构基础(一)
系统:有一群有关联的个体组成,根据某种规则运作,能组成个别元件不能单独完成的工作的群体。即“总体”、“整体”子系统:一群有关联的个体组成的系统,一般是大系统中的一部分。软件模块:一致而又互相紧密关联的软件组织。包含程序和数据结构。软件组件:自包含的、可编程的、可重用的、与语言无关的软件单元。易于组装到其他应用程序中。软件框架:为了实现某个业界标准或完成特定基本任务的软件组件的规范,也是为了实现规范,所提供的基础功能的软件产品。软件架构设计的目的是为了解决复杂度带来的问题...原创 2021-01-18 22:04:00 · 211 阅读 · 1 评论