Web开发

注册

 

发新话题 回复该主题

进阶带你认识Web应用系统架构的演进 [复制链接]

1#

今天是年的第一天,也是国人们的元旦佳节,借此节日,为大家献上一篇关于架构方面的文章。

首先大家先回想一下,生活中所接触到的网站、app,在使用时会不会有这种感觉:哇,竟然有这么秀儿的功能、这app一点都不卡,很流畅。

所以,为了满足大家的好奇心,下面号主就来讲下web应用架构的演进。

最简单开始-单机网站

一个网站,最开始的要求其实是非常简单的,只要能实现基本功能、能部署跑起来、能支持少量客户访问、而且对可靠性要求不高,这就完事了~~

示例草图如下

改进数据库性能和可靠性-数据库集群

当前阶段出现的挑战

数据库最先出现性能瓶颈

数据库单点故障

对架构的整改演进

web服务器和数据库分离

数据库主备集群,读写分离

示例草图如下

改进web服务器性能-web服务器集群

当前阶段出现的挑战

用户访问量快速增长

web服务器出现性能瓶颈

web服务器单点故障

对架构的整改演进

引进负载均衡器

nginx

haproxy

.....

引入集群软件

keepalived

RHCS

.....

示例草图如下

缓解高并发-分布式缓存服务

当前阶段出现的挑战

存在热点数据读写性能问题

应对高并发

对架构的整改演进

引进负载均衡器

Rediscluster

Memcachedcluster

.....

示例草图如下

化繁为简-微服务化

当前阶段出现的挑战

单体程序,代码体积庞大,内部依赖关系复杂,难以维护

对架构的整改演进

引进微服务公共组件

服务注册和发现

API网关

服务治理

调用链跟踪

拆分微服务

按照业务划分

除了业务逻辑层,前端、缓存、数据库也需要拆分到不同的微服务模块

示例草图如下

异步解耦-消息队列

当前阶段出现的挑战

突发访问高峰

微服务模块之间高耦合

对架构的整改演进

引入消息中间件

kafka

rabbitmq

.....

示例草图如下

最后的总结

以上演进的阶段为:单机-集群-分布式-微服务。

其实,Web应用系统架构的演进不止于此,当前很多企业都有着相同的痛点:私有基础设施维护成本高、架构水平不够弹性,所以更多的是做了应用上云改造,如容器化、SaaS化,号主这里面儿懂的也不多,就不在介绍啦

最后,祝愿大家节日快乐,也希望在新的一年都是牛气哄哄滴

-END-

扫码

分享 转发
TOP
发新话题 回复该主题