欢迎访问shiker.tech

请允许在我们的网站上展示广告

您似乎使用了广告拦截器,请关闭广告拦截器。我们的网站依靠广告获取资金。

中间件是如何进行集群管理的?
(last modified Jul 23, 2023, 5:17 PM )
by
侧边栏壁纸
  • 累计撰写 176 篇文章
  • 累计创建 61 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

中间件是如何进行集群管理的?

橙序员
2023-07-23 / 0 评论 / 0 点赞 / 268 阅读 / 744 字 / 正在检测百度是否收录... 正在检测必应是否收录...
文章摘要(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进行数据同步

image-20230723161635584

redis

主从复制:主节点同步操作命令给从节点。

image-20230723161635584

Sentinel+Replication:通过Sentinel检测节点运行状态(哨兵机制),再出现问题时通过sentinal进行自动故障转移(主从切换会丢失数据,且redis只能单点写入,不能水平扩容)

image-20230723164021161

Redis集群:所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。节点的下线是通过集群中超过半数的节点检测失效时才生效。客户端与redis节点直连,不需要中间proxy层。客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value

image-20230723163015220

ES

ES集群中的节点分为master节点、数据节点、协调节点。在指定数量的master节点下线后,通过数据节点的CLUSTER STATE选举master。

image-20230723163916883

消息中间件

rocketMQ

多master模式:多个 master 节点组成集群,单个 master 节点宕机或者重启对应⽤没有影响。

多master多slave异步复制模式:在多 master 模式的基础上,每个 master 节点都有⾄少⼀个对应的 slave。master 节点可读可写,但是slave 只能读不能写,类似于 mysql 的主备模式。性能好,但是数据会丢失

多master多slave同步复制模式:同多 master 多 slave 异步复制模式类似,区别在于 master 和 slave 之间的数据同步⽅式。能保证数据不丢失。

image-20230723164435250

Kafka

broker中的partition在其他不同的broker中都存有副本。通过ISR管理副本,并HW机制完成领导者副本与追随者副本之间的数据同步。broker和partition节点的管理通过zookeeper完成。

image-20230723165256080

0

评论区