网站架构模式

简介: <div class="markdown_views"><p>模式描述对重复发生时间的通用解决方案的核心。</p><p>模式的价值在于可重复性。</p><h2 id="网站架构模式">网站架构模式</h2><p>为了解决高并发访问,海量数据,高可靠运行,提出了很多解决方案实现高性能,高可用,易伸缩,可扩展,安全等技术架构。</p><h3 id="分层"

模式描述对重复发生时间的通用解决方案的核心。

模式的价值在于可重复性。

网站架构模式

为了解决高并发访问,海量数据,高可靠运行,提出了很多解决方案实现高性能,高可用,易伸缩,可扩展,安全等技术架构。

分层

横向分成, mvc, 视图,业务,数据库层
进制跨层调用
会给以后的优化带来很多的方便
可以每层部署到不同的物理设备

分割

纵向切割, 按功能和服务包装成高内聚低耦合的模块单元。
一方面有利于开发和维护,一方面利于分布式部署,提高并发处理能力和功能扩展能力
例如将网站分为:购物,论坛,搜索,广告。。 更细分割,购物可以分为:机票酒店,小商品,大家电等。更细的还可切割为首页搜索列表,详情页等。

分布式

分层和分割的一个重要作用就是分布式, 通过远程调用连接。 提高处理能力

但是。网络损耗, 数据一致性, 更大的宕机风险, 会导致软件错综复杂。
常见的分布式方案:
- 分布式应用和服务. 改善并发性,减少数据库连接资源,还能更好的复用服务,便于业务功能扩展
- 分布式静态资源。 图片等,使用独立域名加快浏览器并发加载速度, 减轻服务器压力。
- 分布式数据和存储。 主要是数据量太大。现在流行的nosql
- 分布式计算: Hadoop和MapReduce. 用于搜索引擎索引构建,数据仓库数据分析等。
- 分布式锁。 分布式环境的并发和协同
- 分布式文件系统 用于云存储

集群

集群化是为了给分布式服务对外一个集中的入口。 通过负载均衡对外提供服务
这种还可以提供可用性,避免宕机。

缓存

将数据放在离计算最近的位置加快处理速度。
CDN:内容分发网络。   放在网络服务商那里,也可以放一些静态资源
反向代理: 网站前端,放静态资源
本地缓存: 存储热点数据
分布式缓存: 热点数据放到缓存中。  减轻后端应用和数据库的负载压力。

异步

降低耦合性。    将业务分为多个阶段,用共享数据的方式进行协作。 单机可以用多线程共享内存队列的方式,即先业务写入队列,后面线程进行消费。  分布式通过分布式消息队列实现。典型是生产者消费者模式。
还有如下的特性:
- 提高系统可用性。    消费者故障,消息队列会存起来。系统整体表现无恙, 消费者恢复后继续处理。
- 加快响应速度
- 消除并发访问高峰。   就是不管并发多大,后台都是这样有序的处理着
- 会对用户体验业务流程有影响

冗余

应用集群。数据库备份,主从。灾备

自动化

自动化代码管理
自动化测试
自动化发布         减少代码编译就发布环节带来的问题
自动化监控
自动化告警
自动化失效转移        
自动化降级            拒绝部分请求以及关闭部分不重要的服务
自动化分配资源等等

安全

密码和手机校验码。
网络通信加密
存储敏感数据加密
验证码
XSS攻击
SQL注入
垃圾信息过滤
交易等重要操作进行风控

在新浪微博中的应用

这里写图片描述
系统分为三个层次, 最下层基础服务层,提供数据库、缓存,存储,搜索等。 支撑海量数据和高并发
中间层是平台服务和应用服务层。 核心服务微博, 关系和用户分割成独立的模块。

业务被分层和分割后进行分布式部署, 在部署上可以单机多应用通过不同的端口号提供服务,得到资源利用最大化。 现在更普遍的做法是单机多虚拟机,这样更方便还不用使用不同的端口

早期架构微博使用同步推模式,用户发表微博后系统会立即将这条微博插入到数据库所有的粉丝订阅列表中。
后来改为推拉结合的模式, 先放入队列,然后任务推到在线订阅者。 离线订阅者上线的同时去拉取订阅列表

使用多级缓存。热门和明星用户在所有服务器上, 在线用户近期微博缓存在分布式缓存中。 保证所有刷微博操作都尽量是缓存操作。

多数据中心,技能灾备,又能就近数据访问。通过消息系统在数据中心之间同步

相关文章
|
18天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
2月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
169 6
|
2月前
|
缓存 监控 API
探索微服务架构中的API网关模式
【10月更文挑战第5天】随着微服务架构的兴起,企业纷纷采用这一模式构建复杂应用。在这种架构下,应用被拆分成若干小型、独立的服务,每个服务围绕特定业务功能构建并通过HTTP协议协作。随着服务数量增加,统一管理这些服务间的交互变得至关重要。API网关作为微服务架构的关键组件,承担起路由请求、聚合数据、处理认证与授权等功能。本文通过一个在线零售平台的具体案例,探讨API网关的优势及其实现细节,展示其在简化客户端集成、提升安全性和性能方面的关键作用。
75 2
|
2月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
69 2
|
2月前
|
存储 缓存 监控
探索微服务架构中的API网关模式
【10月更文挑战第1天】探索微服务架构中的API网关模式
95 2
|
26天前
|
缓存 监控 API
探索微服务架构中的API网关模式
随着微服务架构的兴起,API网关成为管理和服务间交互的关键组件。本文通过在线零售公司的案例,探讨了API网关在路由管理、认证授权、限流缓存、日志监控和协议转换等方面的优势,并详细介绍了使用Kong实现API网关的具体步骤。
46 3
|
26天前
|
存储 缓存 监控
探索微服务架构中的API网关模式
探索微服务架构中的API网关模式
47 2
|
3月前
|
JSON 监控 安全
探索微服务架构中的API网关模式
【9月更文挑战第22天】在微服务架构的海洋中,API网关如同一位智慧的守门人,不仅管理着服务的进出,还维护着整个系统的秩序。本文将带你一探究竟,看看这位守门人是如何工作的,以及它为何成为现代云原生应用不可或缺的一部分。从流量控制到安全防护,再到服务聚合,我们将一起解锁API网关的秘密。
|
4月前
|
分布式计算 负载均衡 API
微服务架构设计原则与模式
【8月更文第29天】随着云计算和分布式计算的发展,微服务架构已成为构建大型复杂应用的一种流行方式。这种架构模式将单个应用程序分解成一组小型、独立的服务,每个服务运行在其自己的进程中,并通过轻量级机制(通常是HTTP资源API)进行通信。本文将探讨微服务架构的基本设计原则、常用模式以及如何有效地划分服务边界。
372 3
|
4月前
|
弹性计算 Kubernetes Serverless
Kubernetes 的架构问题之Serverless Container中不支持特权模式的问题如何解决
Kubernetes 的架构问题之Serverless Container中不支持特权模式的问题如何解决
95 6