文章摘要(AI生成)
常用的中间件进行集群管理的方式有两种:一种是通过注册中心进行集群管理的:中间件注册中心redissentinelrocket MQname serverkafkazookeeperdubbozookeeperspring boot(微服务)eureka,consul,Nacos另一种是通过分布式节点
常用的中间件进行集群管理的方式有两种:
一种是通过注册中心进行集群管理的:
中间件 | 注册中心 |
---|---|
redis | sentinel |
rocket MQ | name server |
kafka | zookeeper |
dubbo | zookeeper |
spring boot(微服务) | eureka,consul,Nacos |
另一种是通过分布式节点进行管理:
中间件 | 特征 |
---|---|
ES | 节点分为主节点、数据节点、协调节点。节点的增加会导致数据分片重新路由。通过ping进行故障检测,故障时通过选举选择新的节点。 |
Redis | 节点分为主节点和从节点,数据通过路由表分配到不同的主节点中。通过投票发现故障节点进行主从切换,并通过副本漂移保证集群高可用 |
数据库
Mysql
主从复制:一主多从,主和从之间通过binlog进行数据同步
redis
主从复制:主节点同步操作命令给从节点。
Sentinel+Replication:通过Sentinel检测节点运行状态(哨兵机制),再出现问题时通过sentinal进行自动故障转移(主从切换会丢失数据,且redis只能单点写入,不能水平扩容)
Redis集群:所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。节点的下线是通过集群中超过半数的节点检测失效时才生效。客户端与redis节点直连,不需要中间proxy层。客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value
ES
ES集群中的节点分为master节点、数据节点、协调节点。在指定数量的master节点下线后,通过数据节点的CLUSTER STATE选举master。
消息中间件
rocketMQ
多master模式:多个 master 节点组成集群,单个 master 节点宕机或者重启对应⽤没有影响。
多master多slave异步复制模式:在多 master 模式的基础上,每个 master 节点都有⾄少⼀个对应的 slave。master 节点可读可写,但是slave 只能读不能写,类似于 mysql 的主备模式。性能好,但是数据会丢失
多master多slave同步复制模式:同多 master 多 slave 异步复制模式类似,区别在于 master 和 slave 之间的数据同步⽅式。能保证数据不丢失。
Kafka
broker中的partition在其他不同的broker中都存有副本。通过ISR管理副本,并HW机制完成领导者副本与追随者副本之间的数据同步。broker和partition节点的管理通过zookeeper完成。
评论区