垂直分库架构
当数据量不断增大,大量的数据都存储在一个库中就已经不太够用了,这时候就可以讲不同的数据分类别存储Mycat也支持在大表拆分为小标的情况下进行访问
但是这种做法其实是增加了数据库的运维难度,这种其实也就叫做分布式数据库,逻辑上是一整个大的数据库,但是实际上却是由各个分开的数据库来组合实现的功能
特点:垂直分库架构是将单一数据库按业务模块进行拆分,不同业务模块的数据存储在独立的数据库中。比如,在一个电商系统中,可以将用户数据、订单数据、商品数据分别存储在不同的数据库中,以减少单库的负载。
优点:垂直分库可以有效降低单库的压力,减轻数据库的负载,增强系统的扩展性和稳定性。业务模块相对独立,便于优化不同数据库的配置,提高每个业务模块的查询和处理性能。
缺点:分库后需要处理跨库查询和事务问题,导致应用复杂度增加。不同数据库之间的联动和数据一致性管理难度较大。此外,垂直分库依赖于对业务的清晰拆分,不适合业务边界模糊的场景。
相关软件
Greenplum、TiDB、Postgresql XC、HAWQ 等,商用的如南大通用的 GBase、 睿帆科技的雪球 DB、华为的 LibrA 等
微服务架构
当应用服务特别多时,我们想要对应用进行维护更新就会变得非常困难
我们可以将不同的业务分给不同的开发团队去维护,每个团队独立实现自己的微服务,互相之间的数据进行隔离
相关软件
Spring Cloud、Dubbo
容器化架构
随着业务的增长,我们发现很多时候系统的利用效率不高,我们需要动态的管理服务器的资源
这就要求我们可以方便快捷的进行服务的部署
可是不同机器的状况是不尽相同的,运维工作量非常大,这时候就需要容器化技术了
docker就是一种,可以把应用和服务打包为一个镜像,然后通过k8s来动态分发和部署镜像
我们把运行环境全部都打包好,直接进行服务的部署即可
在同一台服务器中,可以由很多个不同的镜像运行,他们之间是独立的,我们甚至可以粗暴的任务,一个docker容器就是一个简单的操作系统