一、单一的单机构造
应用服务器与数据库布署在单机上。
二、 应用服务器与数据库服务器拆分
三、应用服务器再拆分
3.1 一种方式可以通过dns解决
3.2 一种方式通过在应用服务器集群前增加负载均衡设备
如果添加 负载均衡设备,需要解决Session问题。
解决方式有如下几种:
1.Session Sticky 2.Session Replication 3.Session数据集中存储 4.Cookie Based
四、数据库读写分离
4.1 增加读库
问题1:数据复制问题
问题2:应用对于数据源的选择问题
解决方式:mysql的Master(主库)+Slave(备库),会有数据信息的延迟问题
4.2.添加缓存:包括数据缓存、页面缓存
4.3.引入分布式存储系统
4.4.数据拆分:垂直拆分、水平拆分--------------平时大家说的分表分库
垂直拆分:根据业务将数据拆分开来,这样应用需要配置多个数据源。并且使用分布式事务处理原来单数据库中跨业务的事务或者不使用事务,那么原来使用表关联的查询需要更改实现方式。
水平拆分:根据某个业务的数据表的数据量或更新量达到单个数据库的瓶颈,将这个表拆分到两个或者多个数据库
五、拆分应用
5.1 根据业务的特性将应用拆开
5.2 应用服务化
5.3 添加消息中间件
应用服务器与数据库布署在单机上。
二、 应用服务器与数据库服务器拆分
三、应用服务器再拆分
3.1 一种方式可以通过dns解决
3.2 一种方式通过在应用服务器集群前增加负载均衡设备
如果添加 负载均衡设备,需要解决Session问题。
解决方式有如下几种:
1.Session Sticky 2.Session Replication 3.Session数据集中存储 4.Cookie Based
四、数据库读写分离
4.1 增加读库
问题1:数据复制问题
问题2:应用对于数据源的选择问题
解决方式:mysql的Master(主库)+Slave(备库),会有数据信息的延迟问题
4.2.添加缓存:包括数据缓存、页面缓存
4.3.引入分布式存储系统
4.4.数据拆分:垂直拆分、水平拆分--------------平时大家说的分表分库
垂直拆分:根据业务将数据拆分开来,这样应用需要配置多个数据源。并且使用分布式事务处理原来单数据库中跨业务的事务或者不使用事务,那么原来使用表关联的查询需要更改实现方式。
水平拆分:根据某个业务的数据表的数据量或更新量达到单个数据库的瓶颈,将这个表拆分到两个或者多个数据库
五、拆分应用
5.1 根据业务的特性将应用拆开
5.2 应用服务化
5.3 添加消息中间件