架构师训练营 Week4

发布于: 2020 年 07 月 01 日

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述.

一个典型的互联网数据请求流程图大概如下图:

可以将以上流程图进行技术栈进行简单拆分成前端和后端进行归类:

1)前端模块:

前端主要涉及Web端,以及涉及到的图片视频资源的缓存,域名解析等。

Web端主要使用常用的Javascript开发框架例如VueJs,ReactJS, AngularJS等, CSS框架有Bootstrap, Element UI, Ant等。

反向代理可以使用Ngnix等做静态资源缓存等。

静态资源缓存方案和前端CDN目前了解比较少,暂不展开。

2) 后端模块:

后端包括粗略的说包括Web服务器,NoSql, 分布式缓存Redis, 本地缓存例如内存硬盘之类的,以及Mysql/SqlServer等关系型数据库。

现有的服务架构一般讲究微服务,业务进行垂直拆分,这就演变成了如下架构:

所有的Http请求都是基于GateWay来调用,目前C#.net领域做GateWay的解决方案有Ocelot.

同时要做到动态伸缩扩容服务器,此时就要求有Consul来做服务注册与发现。

考虑到特殊情况,还要进行服务限流/熔断/缓存/和并请求等,此时需要用到服务治理,解决方案有Polly等。

在分布式系统中,免不了要用到分布式事务,解决方案有CAP等。分布式追踪系统方案有SkyWalking.

在授权用户登陆方面,有IdentityServer4和JWT方案。

对于有序的消息队列方案有:RabbitMQ, MSMQ等。

对于定时任务有:Quartz.net等。

服务器运维编排涉及到K8S, Docker等。

自动化集成CI/CD工具,有Jenkins工具。

用户头像

Frank Zeng

关注

还未添加个人签名 2018.09.17 加入

还未添加个人简介

评论

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