关于RabbitMQ的一些概念

RabbitMQ的一些概念
 

Connection和RabbitMQ的一个TCP连接, Connection在应用程序内最好是消费消息一个, 推送消息一个, 并且应该保持长连接

Channel在TCP连接里和RabbitMQ通信的一个通道

Exchange :RabbitMQ 中的一个交换机
 
Queue :RabbitMQ中的一个队列
 
Producer :消息生产者, 消息生产者把消息发送到 RabbitMQ
 
Consumer :消息消费者, 消息消费者从 RabbitMQ Queue 消费消息
 
Exchange, Queue, Producer, Consumer 之间的关系
 
 
为什么选择 为 RabbitMQ
RabbitMQ 的持久化支持,保证了消息的稳定性,虽然单实例性能比 kafka Zero 低,但是它支持持久化和他的 ack 机制可靠性更高,保证数据不丢
失。
高并发扩展, RabbitMQ 使用了 Erlang 开发语言, Erlang 是为电话交换机开发的语言,天生自带高并发光环和高可用特性。
集群部署简单。
开源,社区活跃度高。
 
RabbitMQ的主要作用
解耦
    消息生产者和消息消费者不直接连接,通过消息中间件解耦。
流量削峰
    如果下游服务的速度跟不上上游服务的速度 , 那么可以用 MQ 来进行流量削峰 , 上游只要把消息推送给 MQ 即可 , 由消息消费者从 MQ 中消费消息 ,
型的应用场景是短信推送
水平扩展
    Erlang 语言天生具备分布式特性,使得 RabbitMQ 天然支持 Clustering ,不需要像 Kafka 那样通过 ZooKeeper 分别来实现 HA 方案。 利用 MQ Round
Robin 机制 , 可以轻松的实现消费者的水平扩展 , 只要多开一个消费者就水平增加了消费能力
异步
    消息会保存在 RabbitMQ , 消息生产者不需要等消费者把消息消费完了才返回 , 消息生产者只要把消息投递成功即可返回
可恢复性
    结合 RabbitMQ 消息的持久化 , ACK 机制 , 可以保证消息没有消费成功的情况下消息不会丢失 , 从而当消息消费者跌机以后重新启动便可继续消费消
消息延时
    通过引入第三方 plugin rabbitmq_delayed_message_exchange , 可以实现消息延时 , 生产者推送消息给 RabbitMQ 以后 , RabbitMQ
会立即分发给 Queue, 而是到了给定的时间才会把消息分发给 Queue ,在实际业务中,我们可以把一部分用定时框架去做的事情通过消息延迟方式
去实现。
CAPBase理论的基础部件
 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值