大型网站技术架构

            

大型网站技术架构

业务流程举例:

1、用户可以通过pc、手机等客户端访问系统进行在线学习。

2、 系统应用CDN技术,对一些图片、CSS、视频等资源从CDN调度访问。

3、所有的请求全部经过负载均衡器。

4、对于PC、H5等客户端请求,首先请求UI层,渲染用户界面。

5、客户端UI请求服务层获取进行具体的业务操作。

6、服务层将数据持久化到数据库。


 功能描述

1. 用户层

用户层描述了本系统所支持的用户类型包括:pc用户、app用户、h5用户。pc用户通过 浏览器访问系统、app用户通过android、ios手机访问系统,H5用户通过h5页面访问系 统。

2. CDN

CDN全称Content Delivery Network,即内容分发网络,本系统所有静态资源全部通过 CDN加速来提高访问速度。系统静态资源包括:html页面、js文件、css文件、image图片、pdf和ppt及doc教学文档、video视频等。

3.负载均 衡

系统的CDN层、UI层、服务层及数据层均设置了负载均衡服务,上图仅在UI层前边标注 了负载均衡。 每一层的负载均衡会根据系统的需求来确定负载均衡器的类型,系统支持 4层负载均衡+7层负载均衡结合的方式,4层负载均衡是指在网络传输层进行流程转发,根据IP和端口进行转发,7层负载均衡完成HTTP协议负载均衡及反向代理的功能,根据 url进行请求转发。

4. UI

UI层描述了系统向pc用户、app用户、h5用户提供的产品界面。根据系统功能模块特点 确定了UI层包括如下产品界面类型: 1)面向pc用户的门户系统、学习中心系统、教学 管理系统、系统管理中心。 2)面向h5用户的门户系统、学习中心系统。 3)面向app 用户的门户系统、学习中心系统未在上图标注,在app项目中有详细说明。

5.微服务 层

微服务层将系统服务分类三类:前端服务、后端服务及系统服务。 前端服务:主要为学 习用户提供学习服务。 后端服务:主要为管理用户提供教学管理服务。 系统服务:公共服务,为系统的所有微服务提供公共服务功能。 服务网关:提供服务路由、负载均 衡、认证授权等服务。

6. 数据层

数据层描述了系统的数据存储的内容类型,持久化的业务数据使用MySQL和MongoDB 保存,其中MongoDB中主要保存系统日志信息。 消息队列:存储系统服务间通信的消息,本身提供消息存取服务,与微服务层的系统服务连接。 索引库:存储课程信息的索 引信息,本身提供索引维护及搜索的服务,与微服务层的系统服务连接。 缓存:作为系统的缓存服务,存储课程信息、分类信息、用户信息等,与微服务层的所有服务连接。 文件存储:提供系统静态资源文件的分布式存储服务,文件存储服务器作为CDN服务器 的数据来源,CDN上的静态资源将最终在文件存储服务器上保存多份。流媒体服务: 作为流媒体服务器,存储所有的流媒体文件。

7.外部系 统接口

1)微信、QQ、微博登录接口,本系统和微信、QQ、微博系统对接,用户输入微信、 QQ、微博的账号和密码即可登录本系统。 2)微信、QQ、微博分享接口,本系统和微 信、QQ、微博系统对接,可直接将本系统的课程资源信息分享到微信、QQ、微博。 3)支付宝、微信、网银支付接口,本系统提供支付宝、微信、网银三种支付接口。 4)短信接口,本系统与第三方平台对接短信发送接口。 5)邮件接口,本系统需要连接第三方的smpt邮件服务器对外发送电子邮件。 6)微信公众号,本系统与微信公众号平台接口,用户通过微信公众号访问H5页面。 7)点播、直播,前期视频点播与直播采用第三方服务方式,本系统与第三方点、直播服务对接,对外提供视频点播与直播服 务。 8)OSS存储 ,前期静态资源文件的存储采用第三方服务方式,本系统与第三方提 供的OSS存储服务对接,将系统的静态资源文件存储到第三方提供的OSS存储服务器 上。 9)CDN,本系统与第三方CDN服务对接,使用CDN加速服务来提高本系统的访问 速度。

8. DevOps

DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。本项目供了许多开发、运营、维护支撑的系统,包括: Eureka服务治理 中心:提供服务治理服务,包括:服务注册、服务获取等。 Spring Cloud Cong服务 配置管理中心:提供服务配置管理服务,包括:配置文件更新、配置文件下发等。 Hystrix Dashboard服务熔断监控:监控熔断的请求响应时间、成功率等 。Zipkin服务 追踪监控:监控服务调用链路健康情况。 Jenkins持续集成服务:提供系统持续集成服务。 Git/GitLab代码管理服务:提供git代码管理服务。 ELK日志分析服务:提供elk日志分 析服务,包括系统运行日志分析、告警服务。 Docker容器化部署服务:将本系统所有服务采用容器化部署方式。 Maven项目管理工具:提供管理项目所有的Java包依赖、项目工程打包服务。

 

 


上一篇:大型网站系统必须具备的要素... 下一篇:相比本地存储设备,云存储到底强...