一个典型的大型互联网应用系统使用了哪些技术方案和手段

用户头像
张瑞浩
关注
发布于: 2020 年 07 月 01 日

任何一个题目的提出都应该对应去解决相应的问题,一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题,还不如说一个大型互联网应用基本都会遇到什么问题,如何来解决?

问题

高并发,大流量

海量数据

用户分布广泛,网络情况复杂

安全环境恶劣

需求迭代快,发布频繁

渐进式发展

应该具备哪些能力

高性能

高可用

可伸缩

可扩展

安全

如何解决上述问题

先介绍一个大型的互联网系统应该包含哪些部分:



针对上述问题,我们挨个架构来分析

前端架构

App及Web开发技术

浏览器及Http技术

CDN

动静分离

图片服务

反向代理

DNS

网关及应用架构

网关架构

负载均衡

nginx、Varnish、Apache TS、HAProxy、Squid

动态业务静态化

业务拆分

服务层架构

微服务架构

spring cloud、dubbo、thrift

分布式消息队列

rabbitmq、nsq、activemq、rocketmq、qmq、kafka

分布式缓存

redis

分布式一致性服务

zookeeper、etcd、redis、数据库

存储架构

分布式文件

hdfs、GFS、Squid

分布式关系数据库

TIDB、OceanBase

NoSql数据库

HBase、redis、mongodb

后台架构

大数据平台

搜索平台

推荐引擎

数据仓库

hive、spark、fink、storm

运维与安全

数据采集与展示

grafana、elasticsearch、Logstash、Logstash

数据监控与报警

bosun、grafana

攻击与防护

数据加密与解密

可伸缩

垂直伸缩硬件和网络吞吐能力,提升单机性能

比如使用RAID独立荣誉磁盘矩阵,增加I/O能力,使用固态硬盘代替机械硬盘,增大机器内存,扩展机器cpu核数

水平伸缩,应对突发流量

这个就需要服务首先保证具有水平伸缩能力,如果是纯后端服务,要保证服务提供负载均衡能力,保证服务本身被均匀调用,比如消费mq消息进行处理的服务,保证消费group一致,并且消息队列本身支持动态增加consumer。如果是http服务,要保证反向代理服务器自动增加服务ip映射。



用户头像

张瑞浩

关注

还未添加个人签名 2018.09.18 加入

还未添加个人简介

评论

发布
暂无评论
一个典型的大型互联网应用系统使用了哪些技术方案和手段