2.系统架构演进

项目演进过程

在这里插入图片描述

项目实施阶段

在这里插入图片描述

项目技术覆盖

Springboot、MyBatis、Redis、Nginx、ES搜索引擎、FastDFS、分布式会话、单点登录、RabbitMQ消息队列列、MyCat、Sharding-Jdbc、分布式锁设计、分布式全局id设计、分布式事务和数据一致性、分布式限流、Springcloud G版微服务、Dubbo、Jenkins、Docker、k8s、容器器弹性扩容、JVM性能调优、MySQL性能优化、Tomcat性能调优、Linux性能优化等,以上技术栈覆盖了了市面上90%的技术内容

大型互联网系统的特点与设计思想

1.大型互联网系统的特点

高并发:一个网站还是系统,从小到大的过程

高可用:HA,高可用的核心就是冗余,SLA,7*24不不间断的服务

大数据:就是为了做用户画像,还有就是做用户行为分析

迭代周期短:越是大型的系统,越不能闭门造车,1-2周就需要产生一个迭代成果

用户量庞大:系统支持用户服务非常巨大

可持续发展:任何一个系统都需要不断升级

安全别高:系统只要上线,并且用户量增大,访问量上去了,后门,漏洞,XSS,CSRF,注入

可弹性、可伸缩:流量是动态,系统如果不能解决突发流量,就非常危险

吞吐量高:

2.大型互联网系统的设计思想

解 耦 : MVC,项目解耦:逻辑流程上的, 架构解耦:是基于业务

集群: 解决基础服务能力

CDN: 是一种加速的服务,按照流量收费,cloudfront,OSS user->应用(静态资源)->数据库

缓 存 : Redis,对我们核心数据库进行保护

分布式系统: 都是为了解决单一节点的应用瓶颈

异步: Ajax,MQ:一般是应用在后端写压力过大的情况

业务分离: 按照业务进行拆分,然后相应团队进行维护

容灾: 数据上的灾备,这个更重要

3.大型互联网系统架构演变历程

初始化单机架构:

在这里插入图片描述

第一次演进:Tomcat与数据库分开部署

在这里插入图片描述

第二次演进:引入本地缓存和分布式缓存

在这里插入图片描述

第三次演进:引入反向代理实现负载均衡

在这里插入图片描述

第四次演进:数据库读写分离

在这里插入图片描述

第五次演进:数据库按业务分库

在这里插入图片描述

第六次演进:把大表拆分为小表

在这里插入图片描述

第七次演进:使用LVS或F5来使多个Nginx负载均衡

在这里插入图片描述

第八次演进:通过DNS轮询实现机房间的负载均衡

在这里插入图片描述

第九次演进:引入NoSQL数据库和搜索引擎等技术

在这里插入图片描述

第十次演进:大应用拆分为小应用

在这里插入图片描述

第十一次演进:复用的功能抽离成微服务

在这里插入图片描述

第十二次演进:引入企业服务总线ESB屏蔽服务接口的访问差异

在这里插入图片描述

第十三次演进:引入容器化技术实现运行环境隔离与动态服务管理

在这里插入图片描述

第十四次演进:以云平台承载系统

在这里插入图片描述

研发到架构师的蜕变&架构师需要具备的技术栈能力

技术方面:

1.语言基础:JVM、GC、IO、类加载、并发多线程、框架、AOP、IOC、线程安全,

2.脚本语言:shell、js、python

3.架构设计:要素、模式、架构演进

4.开发工具:IDE(Eclipse,IDEA),Git、Svn、Jenkins、Maven、Gradle、JIRA、Wiki

5.负载均衡:DNS、Nginx、F5、LVS、HAProxy,(HA:keepalived)

6.设计模式

7.数据结构与算法

8.运维和测试:监控、日志、测试

9.分布式服务:理论(SOA、微服务理理论)、springcloud、dubbo、通信机制、

​ 服务治理、API网关、Netty

10.虚拟化:Docker、IaaS、PaaS、SaaS、k8s

11.中间件:容器器、MQ、缓存、数据库、NoSQL

12.一致性:锁、强一致性、分布式一致性、一致性算法、分布式事务

13.大数据:ETL

还有方案评估:评估各种风险尤其发布阶段要进行深入关注

在实际工作中如何进行系统架构

一:先做背景调查

1.系统所用的技术栈

2.团队管理的流程(这里是和项目经理沟通的地方)

3.需求的开发模式:基于传统的还是基于敏捷(这里就是和产品沟通的地方)

4.系统所处的架构阶段

5.和业务沟通 ,了解业务所面临的技术难题:业务人员、BOSS、客户

6.寻找业务的复杂度的点

什么叫复杂度: 一个系统到底问题来源是哪里

复杂度的来源: 高性能,高可用,可扩展性,低成本, 安全

二:知道问题本身

1.制定方案

时间成本、技术成本、应该采用最适合或能最快速解决问题的方式

一定要有备选方案:3-5个为佳

2.评估和选择

最简派:基于时间的

最牛派:炫技,甲方项目

最熟派:用于成本方面

领导派:权衡利弊

​ 业务也不一定全面理解,

​ DID、N+1

​ 在没有明确数据节点和时间成本要求的情况下,一般不会有最真实的意图和决策的

​ 数据量化很重要

3.实施

4.优化

5.PDCA

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值