可承载千万级用户的互联网公司网络框架详解

一、架构

在这里插入图片描述

二、流程解释

1.DNS根据域名查询地址

注:因为DNS服务器性能数量的原因,有时候公司会选择让DNS来承担一部分分流的任务,在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。

2.公司部署防火墙拦截请求

3.请求发往nginx来进行负载均衡

注:nginx的5种分发方式:https://blog.csdn.net/shuzl213/article/details/53366895

4.请求分发到数百个业务系统集群,而每个业务系统又包含多个微服务集群,每个微服务又包含多个接口,每个接口又有多个服务器,而请求最后正是分发到每一个服务器上

业务系统每个业务都是一个甚至多个系统集群, 这些集群只负责接受请求, 调用所需要的服务(微服务器) 再组装结果返回数据,这里没有真正的业务逻辑, 也就是SSM框架里的controller的作用,像调用本地的service一样调用微服务(当然调用的时候是要经过一些协议,申请等像zookeeper, spring cloud), 业务系统的数量视公司规模而定, 大型的互联网公司大概有几百个系统集群

注:微服务集群包括消息队列集群(主从容灾),消息推送集群,文件存储集群(主从容灾),缓存集群(通过和数据库联系实现主从容灾)等集群服务

5.服务器与数据库进行交互,数据库需要做读写分离和主从容灾配置。

读写分离:主从数据库实现读写分离,主数据库负责“写操作”,从数据库负责“读操作”,根据压力情况,从数据库可以部署多个提高“读”的速度,借此来提高系统总体的性能。同时要解决主从数据库数据同步的问题,在主数据库写入数据后要保证从数据库的数据也要更新。

主从容灾配置:当有一个数据库发生问题时,能把功能即使切换到另一个数据库,保持系统的正常运行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章