高并发探测三分布式场景常见问题之速度优化数据同步问题

55次阅读

共计 685 个字符,预计需要花费 2 分钟才能阅读完成。

场景需求

对于已有的 mysql 主从项目,应对数据量大时往往采取分库分表的做法,为了缩短页面响应采用一主多从的 主写 + 从读 的读写分离架构。
redis:Redis 中文网:内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理 …。使用 redis 一:使用 redis 作为 php 的缓存层,存储常用、相对固定的公共数据;二:添加 redis 缓存,组成 mysql 写 + redis 读 的架构;三:甚至直接采用 redis 读 + 写 的架构。
mysql 迁移 redis 需要后台程序的紧密配合。“读写分离”容易出现数据不一致的问题。

一些优化相关

 传统前后端优化途径:1. 前端 
    减少请求次数:css 精灵(小图合并到大图),data-image(data-icon:src=data:image/jpg;base64;xx,小图合并到 js 文件);2. 网关
    web 资源防盗链 refer 监测,nginx 限流,nginx 负载均衡、nginx 缓存静态资源、gzip 等,http2.0;3. 后端
    使用 redis、memcache 缓存,mysql 优化;进阶:1. 网关
    mysql 迁移 redis,分布式集群部署;2. 后端
    添加针对高并发的消息队列,多线程、协程化,使用连接池;分布式部署常见问题:登录 session 共享问题;读写分离的同步数据问题。另外还各种诸如图片数据库、对象存储等。

1. 分布式问题的一致处理

要同时在多台服务器上处理比如:库存超卖、订单支付问题需要频繁的过程校验,所以对并行任务串行化、使用一台机器、单一线程处理这种一致性问题最为稳妥。应对大数据量的情况采用消息队列,平衡服务器压力。

a.RabbitMQ 消息队列

正文完
 0