分布式架构概述
来源:互联网 发布:淘宝卖家注册账号申请 编辑:程序博客网 时间:2024/06/03 12:43
- 分布式(一个业务分成多个子业务)和集群的关系
比如当前电商平台的业务主要有 用户、 商品、订单
分布式: 一个业务拆分成多个子系统,部署在不同的服务器上
集群: 同一个业务,部署在多个服务器上,保证服务器的高可用 - 大型网络的特点
1) 访问量(tps每秒的速度、qps每秒的查询)
2) 数据量(存储数据量) 电商平台的发展
业务主要分为: 用户、 商品、订单容器: tomcat ;jsp/servlet
数据库存储: mysql
网络层面的知识:tcp/udp
1)一台服务器
一台(服务器、db)
2) 数据库服务器和应用服务器分离
用户量上去,服务器出现性能问题。单击负载越来越高,数据库服务器和应用服务器分离
一台服务器,一台db(ip:内网)
3) 应用服务器做集群
应用服务器做负载(分流,集群)
但是这里产生的问题
I) session 跨服务器问题
一台服务器上都会有session保存用户信息(登录信息)等。那么当有多台应用服务器时,如何保存session跨服务器的问题。(用户A发送登录请求到应用服务器A上,登录成功后;用户A发送修改用户密码的请求到应用服务器B上,那么应用服务器B如何知道用户A已经登录成功了?)
解决办法:
1)session sticky请求保证在同一个服务器上。
2)session replication 每个服务器都保存一个session,session同步开销,内存问题。
3)session 集中存储,存储在db、 存储在缓存服务器 (redis)
4)cookie (主流): 保存在客户端,
access_token(userid/token/timestamp) – 加密在客户端浏览器,过期时间 在服务器解析。只做传输协议,无状态
II) 如何做请求转发
解决办法:
负载均衡器ngix
4) 数据库的读写分离
问题:
一:数据库读写分离怎么操作
二:数据库的数据同步
三:数据库路由 mycat
5) 搜索商品(搜索引擎)
问题:
1. 搜索引擎的索引数据怎么去做同步,实时增量同步? 还是定时全量同步?
根据场景来区分:
搜索结果(不需要实时的数据):首页数据(增量索引)
后台数据(定时同步)
6) 缓存机制(热点数据)
流程:
先去读缓存数据,没有数据再去读数据库,并且将数据库中的数据放入到缓存中。
页面缓存
用户量是没有上限的 ,方式:缓存、 限流、 降级
7) 数据库的水平/垂直拆分
数据库io瓶颈
一张表存储量500万 – 1000万
拆分:
一: 垂直拆分(数据拆分):按业务进行拆分 : 商品 、 订单、用户(3个db),历史数据如何拆分。
二: 水平拆分(表拆分):订单表 – 订单1 、订单2.。。
8) 应用服务器的拆分
拆分:
一: 垂直拆分: 不同的域名(解析到不同的服务器) 商品、用户、订单
二: 服务节点:如果商品服务器使用订单,得写订单的查询;订单服务器使用商品,得写商品的查询。这时就会出现代码冗余。、
这时需要提供商品服务、用户服务、订单服务。 服务器用到时就可以直接调用,可以使用webservice、dubbo(rpc)
监控(应用监控、数据库),日志采集、大数据分析。Spark
架构:
- 分布式架构概述
- 分布式互联网架构——概述
- 分布式架构(四)-zookeeper概述
- FastDFS分布式文件系统点滴记录2 -- 架构概述
- FastDFS分布式文件系统点滴记录2 -- 架构概述
- 《大规模分布式系统架构与设计实战》第一章 概述
- 大型分布式网站架构设计与实践《概述与大纲》
- 大型网站架构之分布式消息队列【思想概述】---转载
- 分布式架构
- 分布式架构
- 分布式架构
- 分布式架构
- 分布式架构
- 分布式架构
- 分布式架构
- 分布式架构
- 分布式架构
- 【分布式】分布式架构
- jQuery绑定和解绑点击事件及重复绑定解决办法
- Mybatis-Plus之代码生成器使用指南
- 数据结构——线性结构
- LeetCode 517. Super Washing Machines
- 矩阵快速幂--最基础的算法,最详细的注释
- 分布式架构概述
- SeetaFace开源人脸识别引擎
- 数据库的故障分类
- 《笨办法学python》加分习题33——我的答案
- openssl C语言编码实现rsa加密
- 如何在Tomcat中配置二级域名
- eclipse怎样在线安装hibernate tools插件并使用
- 一个故事讲完https
- 微信公众号开发(一)服务器及接口的配置