RabbitMQ的简介

简介

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。


历史

Rabbit科技有限公司开发了RabbitMQ,并提供对其的支持。起初,Rabbit科技是LSHIFT和CohesiveFT在2007年成立的合资企业,2010年4月被VMware旗下的SpringSource收购。RabbitMQ在2013年5月成为GoPivotal的一部分。

基本概念


RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。

主要特性

可伸缩性:集群服务
消息持久化:从内存持久化消息到硬盘,再从硬盘加载到内存。

适用场景

1.解耦

2.最终一致性

3.广播

4.错峰与流控(秒杀业务用于流量削峰场景)

AMPQ消息路由的必要三部分:

交换器、队列、绑定。

核心组件

ConnectionFactory(连接工厂)

        ActiveMQConnectionFactory,这个connectionFactory不会复用connection、session、producer、consumer,每次连接都需要重新创建connection,再创建session,然后调用session的创建新的producer或者consumer的方法,然后用完之后依次关闭,比较浪费资源。

        PooledConnectionFactory会缓存connection,session,和producer,不会缓存consumer,更适合于发送者。

        SingleConnectionFactory:对于建立JMS服务器链接的请求会一直返回同一个链接,并且会忽略Connection的close方法调用。 

        CachingConnectionFactory继承了SingleConnectionFactory(仅有一个Connection),所以它拥有SingleConnectionFactory的所有功能,同时它还新增了缓存功能,它可以缓存Session、MessageProducer和MessageConsumer。spring2.5.3之后推出的首选方案。默认情况下,cachingConnectionFactory默认只缓存一个session,针对低并发足够。sessionCacheSize =1. 默认缓存producer、consumer。

Connection(连接)

Channel(渠道)

Delivery(投递)

DeliverCallback(投递回调)

CancelCallback(取消投递回调)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值