Week4  互联网系统的技术和手段

发布于: 2020 年 06 月 30 日

1 前端技术

CDN

在不改变系统架构的前提下,在运营商处缓存静态资源。加快用户访问静态资源速度,且不会占用自身带宽。

动静分离

动态页面与静态页面分开部署的架构方式。如有些电商系统中详情页和搜索页会分为不同的系统,分开部署。

图片服务

有自己搭建的图片服务如FastDFS,或者云存储服务。具有文件存储,文件上传下载功能。对比传统的NFS挂载。图片服务属于分布式架构,容易扩展。

2 网关及应用层

网关架构

聚合服务,或者叫做数据聚合服务,顾名思义就是把所需要的服务给聚集在一起,这个概念在现实中非常重要,因为聚合服务做得好,能尽可能地减少服务治理的问题。业务服务的实现方面更多的考虑业务逻辑,而安全、性能、监控可以交由 网关来做,这样既提高业务灵活性又不缺安全性。

负载均衡

将请求按负载均衡算法分配给集群中的一个实例处理。常见的有:

  • 硬件负载(F5,RadWare),单机吞吐量为几百万级.

  • 四层负载(LVS), 可以负载TCP层的连接,单机吞吐量在几十万级。

  • 七层负载(Nginx, HAProxy, Envoy),单机吞吐量几万级。

动态页面静态化

提前将不容易变的页面用模板提前生成静态页面,减少读库。如电商的首页和详情页。

业务拆分

将大的系统按业务垂直拆分,可以提高系统性能。可以按业务按需扩容;简单的系统更能够实现性能优化。

3. 服务层架构

微服务框架

业务拆分后,服务的数量和各类大大增加。带来额外的治理复杂性,引入微服务框架解决如下问题:

  • 服务的注册与发现

  • 服务配置

  • 负载均衡

  • 服务网关

  • 服务路由

1) SpringCloud及Dubbo

2)K8s+Istio

分布式消息对列
  • 实现系统间的解耦

  • 分布式事务

  • 削峰

  • 异步,提高吞吐量

  • 流式处理(Kafka)

分布式缓存
  • 读内存,减少读库,提高性能

  • 分布式协调,如Hazelcast,重写了java util包下的原子类,集合和锁等。可以实现分布式控制。

存储层架构
  • 分布式文件: FastDFS(适合小文件存储)。Hadoop(大文件存储)

  • NoSQL数据库:牺牲关系型数据库的ACID特性以带来更好的性能。文档型:Mongo DB, 列式:HBase, Key-Value: Redis等

4. 运维与安全

指标监控

Prometheus,Grafana。收费的Dynatrace.

日志监控

免费的ELK, 收费的Splunk

链路追踪

系统自实现Opentracing规范

Jeager

如某公司的监控平台架构:

用户头像

TiK

关注

还未添加个人签名 2018.04.26 加入

还未添加个人简介

评论

发布
暂无评论
Week4  互联网系统的技术和手段