Zookeeper、Redis及其它各种中间件的集群方式

技术文档网 2021-04-25

Zookeeper

1、Server分成Leader、Follower和Observer三种角色,Leader通过选举产生,Observer不参与投票。
2、客户端可以连接任何一个Zookeeper实例,可以从任何一个实例上读取数据,但是只有Leader能够发起写操作,Follower接受到写请求,会forward到Leader让Leader进行广播通知。
3、每个Server上的数据都是完全一样的,通过zab协议来保证。
4、Client与Server通过heartbeat来维护session,Server之间维持着PING等各种消息。
5、Server的ip列表在client端通过collections.shuffle打乱,然后从第一个开始依次连接。
6、Client与Server走nio,Server之间走tcp。

Redis

1、作为存储组件,必须要进行数据分片,所以自3.0开始,redis支持集群方式运行。
2、集群运行方式不使用哈希一致性,而使用哈希槽,将槽数固定为16834个,当增删节点时,只要将槽进行移动即可,避免了由于节点的变化而不得不重新计算存储位置的问题。
3、为了增强可用性,每一个主节点都至少拥有一个从节点,同时额外增加一些随机从节点,当某些普通从节点不可用时,这些随机从节点就可以动态顶上,以保证每个主节点都有从节点。如果主节点和相应的从节点都不可用时,整个集群将不可用。
4、每个节点之间通过heartbeat来保持活跃度,从节点只负责提供读操作,主节点负责读写,同时将数据同步到从节点,从节点不接受写操作,主节点出现故障时,从节点被选举为主节点。
5、redisson是当前最好的客户端,提供主从,哨兵,集群等多种运行模式,它的内部使用netty进行异步操作,当进行读取时,连从节点读取,进行写操作时,连主节点进写入,这是非常好的方式。同时因为3.0开始redis支持集群运行,所以先前提供哈希一致性的客户端也就没有多大意义了。
6、redis没有zookeeper那样的数据一致性,所以存在写数据丢失的情况,通常为主节点将数据copy给从节点之前挂掉,或者主节点处在了小区分片这边,在这种情况下,如果主节点不能与大区其它主节点恢复通信的话,那么所有的写入数据都将丢失。

相关文章

  1. redis-setnx-实现原理

    setGenericCommand 方法实现 //setGenericCommand()函数是以下命令: SET, SETEX, PSETEX, SETNX.的最底层实现 //flags 可以是NX

  2. Linux安装redis并配置成service系统服务

    前言 写作这一篇文章纯粹的目的就是快速上手redis,人的精力有限,将你的精力花在学习知识上,而不是安装。 我就是喜欢简单的命令管理 Linux 上的程序,信奉傻瓜式操作是流行的前提。当你希望弄懂为什

  3. Zookeeper、Redis及其它各种中间件的集群方式

    Zookeeper 1、Server分成Leader、Follower和Observer三种角色,Leader通过选举产生,Observer不参与投票。2、客户端可以连接任何一个Zookeeper实例

  4. redis集群配置教程

    Redis集群 说明 redis支持集群最小的单位为6个实例,3个主节点,3个从节点 假设两台机器:192.168.0.1, 192.168.0.2, 每台机器安装3个结点 redis使用源码安装方

  5. Redis源码阅读笔记之链表

    链表结构 链表在Redis中应用广泛,其中列表键的底层实现之一为链表,当列表键包含的元素太多或者其值为较长的内容时会使用链表来实现,比如范围查询: LRANGE nums 0 100。 除了列表键,r

随机推荐

  1. redis-setnx-实现原理

    setGenericCommand 方法实现 //setGenericCommand()函数是以下命令: SET, SETEX, PSETEX, SETNX.的最底层实现 //flags 可以是NX

  2. Linux安装redis并配置成service系统服务

    前言 写作这一篇文章纯粹的目的就是快速上手redis,人的精力有限,将你的精力花在学习知识上,而不是安装。 我就是喜欢简单的命令管理 Linux 上的程序,信奉傻瓜式操作是流行的前提。当你希望弄懂为什

  3. Zookeeper、Redis及其它各种中间件的集群方式

    Zookeeper 1、Server分成Leader、Follower和Observer三种角色,Leader通过选举产生,Observer不参与投票。2、客户端可以连接任何一个Zookeeper实例

  4. redis集群配置教程

    Redis集群 说明 redis支持集群最小的单位为6个实例,3个主节点,3个从节点 假设两台机器:192.168.0.1, 192.168.0.2, 每台机器安装3个结点 redis使用源码安装方

  5. Redis源码阅读笔记之链表

    链表结构 链表在Redis中应用广泛,其中列表键的底层实现之一为链表,当列表键包含的元素太多或者其值为较长的内容时会使用链表来实现,比如范围查询: LRANGE nums 0 100。 除了列表键,r