首页 > 编程知识 正文

数据库读写分离实现,数据库读写分离中间件

时间:2023-05-04 23:38:39 阅读:37964 作者:3431

译文: https://白嘉豪. Baidu.com/s? id=1614304400276051465 wfr=spider for=PC

如果想在数据库中“读写分离”,请先了解“读写分离”能解决什么问题

对“读写分离”知之甚少,认为数据库的所有负载问题都可以使用“读写分离”来解决。

这样做是不正确的,但我们产生了这样的误会。 我们要使用“读写分离”,首先应该理解“读写分离”是为了解决什么问题,而不仅仅是这个技术。

读写分离是什么? 其实,将数据库划分为主从库,一个主库用于写数据,完成从多个库中读取数据的操作,主从库之间通过某种机制进行数据同步是一种常见的数据库体系结构。

主从同步群集,通常称为“分组”。

将数据库架构分组可以解决什么问题?

在许多互联网业务中,写操作往往很少。 此时,读取数据库首先称为数据库瓶颈。 此时,如果希望线性提高数据库的读性能,消除读/写锁定冲突,提高数据库的写性能,请使用“分组体系结构”(读/写隔离体系结构)。

总之,读写分离是用来解决数据库读取性能瓶颈的。

但是,没有任何读性能瓶颈需要使用读和写隔离。 还有其他解决方案。

在互联网使用场景中,数据量大、并发量高、高可用性要求高、一致性要求高是常见的。 使用“读写分离”时,必须注意这些问题。

数据库连接池必须区分读取连接池和写入连接池,这增加了开发难度

为了确保高可用性,读连接池必须自动化故障切换。

主从一致性问题需要考虑。

在需要考虑这么多问题的情况下,为什么不仅仅使用缓存来解决“数据库读取瓶颈”呢?

为什么要使用现金?

缓存也是互联网上常用的一种体系结构方式。 与“读写分离”不同,读写分离通过多个库来分散数据库的读取压力,而存储使用缓存来降低数据库的读取压力。 虽然他们没有谁能代替他们,但是在读写缓存分离中进行两种选择时,必须首先考虑缓存。

为什么呢?

缓存的使用成本比细心的杯子要多得多

高速缓存的开发比较容易,大多数读取操作都是先去高速缓存,找不到的可以渗透到数据库中。

当然,如果使用缓存,但读取是瓶颈,则可以选择“读与写分离”体系结构。 简而言之,读写分离可以认为是缓存无法解决的情况下的一种解决方案。 当然,缓存也不是没有缺点。 对于缓存,必须考虑高可用性。 否则,如果缓存锁定,则所有通信将同时聚集在数据库中,数据库将锁定。

常见的数据库瓶颈是什么?

其实是数据容量的瓶颈。 例如,订单表只需要增加数据量,而必须保留历史数据,很容易成为性能瓶颈,但要解决这种数据库瓶颈,“读写隔离”和缓存往往都不合适

数据库的水平分割。

数据库的水平分割是什么?

数据库水平划分也是一种常见的数据库体系结构,是一种通过算法划分数据库的体系结构。 将集群中的每个数据库水平分割,通常称为片。 每个切片中的数据不匹配,所有切片中的数据聚集在一起构成所有数据。

水平分割体系结构解决什么问题? 大多数互联网业务的数据量非常大,单库容量最容易成为瓶颈。 单库容量遇到瓶颈后,我们希望提高数据库的写入性能,而降低单库容量后,就可以采用水平划分。

但是,一些程序员在自由贸易中使用“读写分离”,而不分析数据库的性能瓶颈是什么。 没想到,“水平分割”是正道。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。