• 架构设计方案


    一、全部基于服务

    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操作达到瓶颈时,从库继续垂直拆分,统一数据接口也可以按照从库的结构拆分,缓存模块按照统一数据接口的结构拆分

  • 相关阅读:
    关于如何绑定Jquery 的scroll事件(兼容浏览器 Wookmark瀑布流插件)
    HttpHelper类使用方法
    Jquery实现弹出选择框选择后返回,支持多级分类
    让asp.net网站支持多语言,使用资源文件
    关于Android SDK Manager无法获取更新列表的正确设置
    Eclipse使用技巧总结
    配置java环境变量
    sqlserver游标使用和循环
    压缩SQLServer数据库日志的一个存储过程
    Jquery EasyUI封装简化操作
  • 原文地址:https://www.cnblogs.com/isfish/p/3187679.html
Copyright © 2020-2023  润新知