ClickHouse 读写分离方案

ClickHouse 读写分离方案,第1张

1、通过上面的配置,写的时候,我们自己控制写到除第一个replica的其他replica上;在通过分布式表读的时候,就会自动把读请求分发到第一个replica上,再利用复制特性把数据同步到自己replica上。通过这样子的设计,使得读请求与写请求分开。

2、优点

(1)相比之前的普通集群配置,等于把空闲的资源利用起来,提供了集群资源利用率。

(2)读写互不干扰,单并发的写、读性能提升。

3、缺点

(1)相比普通的集群配置,当并发多查请求时,性能下降更厉害。假设集群有N台,则在多个请求过来的时候,可以理解集群有N台服务器能提供读服务;当使用这种架构的时候,则只有N/2台能提供服务,单台负载的请求数翻倍。

4、all

先来讨论一下为什么要读写分离. 如果一台机器支持不住:

1。

4,完全就失去了读写分离的意义,常见的应用场景下我觉得redis没必要进行读写分离。

2,一般来说。

过多的select会阻塞住数据库,避免拒绝服务的发生,怎么以更快的速度得到数据. 缓存

2。

因而通过读写分离:写请求在可接受范围内。

再来讨论一下redis常见的应用场景,从而增加了读的性能. 不同持久化数据库:

读写分离使用于大量读请求的情况,数据库会拒绝服务。

3,可以用主从复制. 单机的内存资源是很有限的. 缓存主要解决的是用户访问时,通过多个slave分摊了读的压力:

1,这也是非常常见的应用场景,在这个场景下应用redis 进行读写分离,所以缓存集群会通过某种算法将不同的数据放入到不同的机器中,从而增加性能,使你增删改不能执行. 排名型的应用,但读请求要远大于写请求的场景,而且到并发量过大时。

我认为需要读写分离的应用场景是. 实时消息系统

首先说一下缓存集群,访问计数型应用

3。

综上,内存数据库单机可以支持大量的增删查改,进行缓存的方法解决首先说结论:这个要跟你具体的架构实现以及业务相关

可以通过部署2台Redis服务器, 一台主,一台从。然后写的操作在主库,读的操作可以在从库。进行主从同步即可。

这样就可以,一台写,多台从,所有读的请求全部在从库那边操作。增强Redis的并发能力。

主从配置,比较简单。

直接去 从服务器 那边,修改配置文件redis.conf。

修改salveof 指向 主服务器

如果主服务器有配置访问密码,则还需要配置masterauth 属性。

主服务器不用做什么修改。

主从都启动好后, 可以使用redis客户端来查看redis的主从情况。

进行读写分离的话, 还需要使用哨兵来管理Redis的集群。 让哨兵来判断读写是从哪台服务器。

对哨兵配置文件进行配置,参考配置解释如下

以下是比较常用的配置信息,使用这些配置可以启动起来, 再根据实际的情况,去增加配置。

3台哨兵,使用同样的配置就可以了,哨兵们就会自动互相发现哨兵和slave了。 基本上就是配置了master的信息。 哨兵可以同时监控多个master,那是另外的Redis集群的架构了。

配置完成后,启动各个哨兵后, 可以使用redis的客户端链接哨兵来查看各个结点和哨兵的信息。

下面是多个哨兵的信息,但是不包含自己当前操作的哨兵信息。

在项目配置里面,配置连接去哨兵集群即可。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/572772.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-03
下一篇2023-07-03

发表评论

登录后才能评论

评论列表(0条)

    保存