zoukankan      html  css  js  c++  java
  • 架构设计方案

    一、全部基于服务

    View   →   统一数据接口   →  缓存模块  → 数据库

    二、统一数据接口 考虑用WebServices

    1、  多种客户端调用统一数据接口读取数据

    2、  通过统一数据接口管理缓存

    3、  主要业务逻辑

    三、中间层----缓存模块

    1、  分布式缓存memcached

    四、数据库读写分离

    1、  两个主数据库(Write)  →  多个从数据库(Read)

    2、  通过事务发布订阅机制同步主从数据库  

    3、  主数据库垂直拆分(网友添加、邮件订阅、VIP,企业展示)VIP管理有问题,主要是主从数据同步延迟的问题。如果VIP数据单独维护,拆分出主库,大的数据列表又有问题。VIP管理时,更新主DB,同时更新所有相关缓存数据,倒是可以解决这一问题

    4、从数据库拆分 水平拆分(条件:两年前) VIP管理后台要做调整,区分两年前后,搜索模块得调整,这样拆分按照网站的结构性能能提升,但两年前数据库不断增大,迟 早也会出现瓶颈;垂直拆分(按红黑中类别拆分),关联查询的比较多,似乎不适合;垂直拆分(按企业类别拆分),似乎可行

            

    五、多服务器部署

    1、主数据库、编辑后台    →  服务器A(性能最优)、从数据库、前台   → 服务器B

    六、优点

    1、  多种平台调用统一接口,提高了代码复用性

    2、  数据库读写分离

    3、减少现有这种架构的数据冗余度

    4、SOA架构

    5、可以通过扩展从数据库提升性能

    七、缺点

    1、  主从数据同步有延迟

    八、扩展

    1、  当Write操作达到瓶颈时,主库可以按照从库的结构垂直拆分,改动不大,主要是数据库连接字符串的变动。

    2、  当Read操作达到瓶颈时,从库继续垂直拆分,统一数据接口也可以按照从库的结构拆分,缓存模块按照统一数据接口的结构拆分

  • 相关阅读:
    PHP底层工作原理
    php WebSocket 简单实现demo
    php部署调优
    php简单随机实现发红包程序
    在Android中调用USB摄像头
    在addroutes后,$router.options.routes没有更新的问题(手摸手,带你用vue撸后台 读后感)
    Vue+elementUI开发中 Cannot read property 'resetFields' of undefined 问题解决以及原因分析
    如何在debug vue-cli建立的项目
    在Node.js使用Promise的方式操作Mysql(续)
    express框架中如何只执行一次res响应操作
  • 原文地址:https://www.cnblogs.com/isfish/p/3187679.html
Copyright © 2011-2022 走看看