写点什么

架构师训练营作业 -Week4

用户头像
wyzwlj
关注
发布于: 2020 年 06 月 28 日

典型的大型互联网应用对互联网架构模式的应用,以及应用过程中使用的相关技术简析:

1、分层

    1)面临的问题:业务复杂,一个业务逻辑的处理中包含了太多代码,导致代码之间耦合严重

    2)解决方案:按照功能层次对系统进行横向维度的拆分,使各部分职责单一化

    3)涉及的技术:MVC 模式、DDD 设计、分层设计、六边形架构

2、分割

    1)面临的问题:业务过于复杂和庞大,导致一个应用中包含了太多的业务代码,使得业务的升级迭代变得困难

    2)解决方案:将系统在纵向维度上进行切分,将一个大系统拆分成一个一个的小系统

    3)涉及的技术:应用层面有 微服务、中台、服务间通信如 RPC 调用、服务发现、服务治理 等

3、分布式

    1)面临的问题:单机服务器性能受限,系统不能通过垂直伸缩解决问题或垂直伸缩成本高,故转而通过水平伸缩解决性能瓶颈

    2)解决方案:将系统拆分为多个模块,并将多个模块部署在不同服务器上

    3)涉及的技术:

        a. 应用层面:类似分割中使用的技术

        b. 数据层面:数据库分库分表、数据库读写分离、分布式数据库、分布式文件系统、分布式缓存 等

4、集群

    1)面临的问题:同一个模块部署在多台服务器上后,需要作为一个整体对外提供服务

    2)解决方案:将多台服务器上的应用构成一个集群,并对一个集群中的服务器按主从进行区分,根据区分的主从角色对外提供服务

    3)涉及的技术:反向代理、负载均衡、DNS 轮询、主从选举机制

5、缓存

    1)面临的问题:针对频繁请求的资源,每次需要花费较多的时间进行计算

    2)解决方案:对请求频繁且耗时的资源进行缓存,避免重复计算

    3)涉及的技术:CDN、反向代理、本地缓存、分布式缓存

6、异步

    1)面临的问题:频繁的向系统写入数据,达到性能瓶颈;服务之间直接调用关系复杂,依赖严重

    2)解决方案:将业务操作分成多个阶段,各阶段之间通过共享数据而不是直接调用的方法进行协作

    3)涉及的技术:消息队列、反应式编程框架

7、冗余

    1)面临的问题 :需要在服务器无法做到 7x24 小时不宕机的情况下,保持系统可以持续服务

    2)解决方案:对系统和数据进行备份处理

    3)涉及的技术:数据库复制、分布式数据库、应用集群管理

8、自动化

    1)面临的问题 :服务较多且变更较频繁的情况下,通过人工管理服务过于复杂

    2)解决方案:系统 &服务的自动化运维和监控

    3)涉及的技术:服务发现 &治理、devops、serverless


用户头像

wyzwlj

关注

还未添加个人签名 2018.05.02 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营作业 -Week4