架构设计方案

一、全部基于服务 View → 统一数据接口 → 缓存模块 → 数据库 二、统一数据接口 考虑用WebServices 1、 多种客户

 

一、全部基于服务

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

 

您可能有感兴趣的文章
企业集成架构设计

如何进行软件架构设计?

如何进行软件架构设计

系统架构设计的原则和模式

转:如何进行软件架构设计?