一个典型大型互联网应用系统:从问题到技术方案和手段

用户头像
走过路过飞过
关注
发布于: 2020 年 07 月 01 日
  • 一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?



场景引发问题;为解决问题,采用技术方案和手段。

互联网应用主要涉及用户、应用服务 和 数据 间的交互:

用户和应用服务之间交互;

应用服务本身和多服务之间;

应用服务和数据交互。



互联网应用的特征:快速发布,渐进式发展;环境复杂。

性能问题:时间优先,首选硬件升级。

大多数问题:先“拿来主义”再考虑自研。

安全性:数据安全、服务安全 - 数据加密、网络攻击防护



  • 用户和应用服务:用户要求->系统要求

大规模高并发访问 -> 快速响应

不间断服务 -> 服务高可用

  • 应用服务

快速响应

->提高处理能力:集群化,自动伸缩、负载均衡、多线程。

->响应速度:异步处理,消息队列

->分流:CDN、业务拆分、微服务

高可用

-> 主从、多活、两地三中心

快速迭代

->可扩展:业务拆分、微服务、服务中台

->服务发布:蓝绿发布、灰度发布

  • 应用服务和数据:大规模用户带来大量数据;业务场景带来大规模数据查询、存储、分析。

两层之间速度不匹配:

->缓存、读写分离

->分布式存储

->数据按业务类型划分

->专业数据库、专业数据分析工具

  • 其他:

大规模集群管理:物理设备和应用服务监控、告警、调度、报表分析



技术手段:

负载均衡:Nginx

自动伸缩:容器+容器编排系统-Kubernetes

消息队列:ActiveMQ、RabbitMQ、Kafka

微服务注册中心:etcd、zookeeper、eureka

高可用(服务、存储):mysql主从/主主、redis哨兵、corosync+pacemaker

缓存:memcache、ehcache、redis

读写分离:中间件、分库分表

数据划分存储:MongoDB、influxDB

专业工具和软件:ELK、zabbix等

用户头像

走过路过飞过

关注

还未添加个人签名 2020.04.13 加入

还未添加个人简介

评论

发布
暂无评论
一个典型大型互联网应用系统:从问题到技术方案和手段