Picture Picture Picture Picture Picture Picture Picture

spring 分布式进阶

感悟:不要漫无目的的学习 有计划的开始。目前最好的目标是分布式

消息队列 (Pub/Sub 发布订阅消息模型)(Message queue)

Kafka、ActiveMQ、RabbitMQ、RocketMQ

意义

解耦:
情景:系统之间调用关系的多变、系统的业务状态多变
异步:
系统接收处理一个请求和交互关系
削峰:
请求积压在 MQ 中、缓存过高峰期

缺点

可用性降低(如何保证消息队列的高可用)减少停工时间,而保持其服务的高度可用性 MQ情况复杂
系统复杂度提高 保证消息没有重复消费?怎么处理消息丢失的情况?怎么保证消息传递的顺序性
一致性问题 系统调用失败了情况

抉择

ActiveMQ< RabbitMQ(erlang 语言比较难)(中等公司)
RocketMQ (阿里的 但是给力apache 社区活跃度一般)(大型公司)
大数据领域的实时计算、日志采集等场景,用 Kafka 是业内标准的

RabbitMQ

基于主从(非分布式)做高可用性的

三模式

单机模式(没人生产用)、普通集群模式(主放队列 其他取)、镜像集群模式( 每个RabbitMQ 节点 一个同步的队列 )

posted @ 2020-09-28 10:39  云行雨步  阅读(208)  评论(0编辑  收藏  举报
Title - Artist
0:00