CAP
CAP理论,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性),不能同时成立。
C:一致性,一致性指的是所有节点在同一时间的数据完全一致
A:可用性,可用性指服务一直可用,而且是正常响应时间
P:分区容错性,分区容错性指在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务
RabbitMQ集群实现CP
模式
普通集群
部署RabbitMQ实例到多台服务器上,每个服务器只启动一个RabbitMQ实例,多个实例之间进行通信(使用Erlang的进程间通信(IPC))。
创建队列:创建队列的配置信息会在rabbitmq实例进行同步,队列的消息还是只会存在于一个rabbitmq实例中
消费消息:如果消费消息访问实例不是所属创建队列的实例,访问的实例会向创建队列的实例拉取消息,发送给消费者消费
优点:提升了消息的吞吐量
缺点:无法保证高可用(如果创建队列的消息宕机了会导致消息无法消费)
镜像集群
和普通集群相比区别在于队列的数据和元数据不是存储在一台机器上