一个典型大型互联网应用系统:从问题到技术方案和手段
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?
场景引发问题;为解决问题,采用技术方案和手段。
互联网应用主要涉及用户、应用服务 和 数据 间的交互:
用户和应用服务之间交互;
应用服务本身和多服务之间;
应用服务和数据交互。
互联网应用的特征:快速发布,渐进式发展;环境复杂。
性能问题:时间优先,首选硬件升级。
大多数问题:先“拿来主义”再考虑自研。
安全性:数据安全、服务安全 - 数据加密、网络攻击防护
用户和应用服务:用户要求->系统要求
大规模高并发访问 -> 快速响应
不间断服务 -> 服务高可用
应用服务
快速响应
->提高处理能力:集群化,自动伸缩、负载均衡、多线程。
->响应速度:异步处理,消息队列
->分流:CDN、业务拆分、微服务
高可用
-> 主从、多活、两地三中心
快速迭代
->可扩展:业务拆分、微服务、服务中台
->服务发布:蓝绿发布、灰度发布
应用服务和数据:大规模用户带来大量数据;业务场景带来大规模数据查询、存储、分析。
两层之间速度不匹配:
->缓存、读写分离
->分布式存储
->数据按业务类型划分
->专业数据库、专业数据分析工具
其他:
大规模集群管理:物理设备和应用服务监控、告警、调度、报表分析
技术手段:
负载均衡:Nginx
自动伸缩:容器+容器编排系统-Kubernetes
消息队列:ActiveMQ、RabbitMQ、Kafka
微服务注册中心:etcd、zookeeper、eureka
高可用(服务、存储):mysql主从/主主、redis哨兵、corosync+pacemaker
缓存:memcache、ehcache、redis
读写分离:中间件、分库分表
数据划分存储:MongoDB、influxDB
专业工具和软件:ELK、zabbix等
评论