写点什么

第四周作业

用户头像
Meow
关注
发布于: 2020 年 10 月 17 日

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


答:典型的大型互联网应用都要具备三个特性:高并发,高性能,高可用。为了应对这些挑战,互联网系统架构会从几个纬度来解决这些问题。


###CDN

CDN 的本质上是将媒体资源,动静态图片(Flash),HTML,CSS,JS 等等内容缓存到距离你更近的 IDC,从而让用户进行共享资源,实现缩减站点间的响应时间等等需求。


负载均衡

将流量转发到多个服务器来提高系统的可用性。可以分为三类,1、地域上的负载 DNS;2、硬件的负载 例如 F5,做的是集群与集群间的负载;3、软件层面的负载,常用到的有 nginx 和 lvs 分别工作在应用层 和 传输层 。


数据库


  • 关系型数据库

关系型数据库强大的关系支持与早已很稳定的数据库事务,使得虽然行业内有各类新型数据库的出现,mysql 与 oracle 这样的数据库仍占据半壁江山。


  • Nosql 数据库

Redis,MongoDB,HBASE 等是我们熟知的非关系型数据库。常见的 NoSQL 数据库包括键值数据库、列族数据库、文档数据库和图形数据库。满足极高读写性能需求的 Kye-Value 数据库:如 Redis。满足海量存储需求和访问的面向文档的数据库:如 MongoDB。满足高可扩展性和可用性的面向分布式计算的数据库:如 Cassandra,HBase。


消息中间件


分布式系统中解决不同系统之间通讯少不了的就是消息中间件。可以分为无代理消息架构与有代理消息架构。目前我们基本常用到的是有代理消息架构,类似产品 RocketMq、Kafka、ActiveMq、RabbitMQ 等。


分布式事务


分布式中最难解决的可能就是分布式事务,最终可能通过一系列柔性事务去解决最终一致性问题,牺牲性能以获得数据的准确性。目前比较火的一些框架有阿里的 seata、gts 等,或是通过业务上的一些手段例如 XA、TCC、多阶段提交来解决。


自动化(主要是运维方向)

在无人值守的情况下网站可以正常运行,一切都可以自动化是网站的理想状态。目前互

联网的自动化架构设计主要集中在运维方面。


用户头像

Meow

关注

还未添加个人签名 2018.05.09 加入

还未添加个人简介

评论

发布
暂无评论
第四周作业