RabbitMQ学习教程
文章平均质量分 87
RabbitMQ介绍、安装以及各种场景的应用,讲解与spring的各种集成,以及集群环境的搭建和使用。
slimina
这个作者很懒,什么都没留下…
展开
-
RabbitMQ学习之Flow Control
当RabbitMQ发布消息速度快于消费速度或者系统资源不足时,RabbitMQ将降低或阻断发布消息速度,以免服务器资源饱满而宕机,可以通过rabbitmqctl和web管理页面查看连接的状态为flow,当服务器资源不足时,连接会被blocked。连接被流控后和正常使用没有什么区别,体现可网络带宽不足情况一样。这个流控不需要配置RabbitMQ默认处理流控。原创 2017-04-17 17:05:27 · 7607 阅读 · 2 评论 -
RabbitMQ学习之队列监控
对于RabbitMQ的监控,除了服务器基本信息(硬盘、CPU、内存、IO等)以及MQ的进程和端口,我们也可以通过请求url访问管理API监控其集群和队列的情况。在java api 3.6.0以后,channel接口为我们原创 2017-01-02 21:53:49 · 9040 阅读 · 1 评论 -
RabbitMQ学习之集群消息可靠性测试
之前介绍过关于消息发送和接收的可靠性:RabbitMQ学习之消息可靠性及特性 下面主要介绍一下集群环境下,rabbitmq实例宕机的情况下,消息的可靠性。验证rabbitmq版本【3.4.1】。 集群环境要求: 1.集群中至少有一台硬盘节点 2.加入集群中有一台内存节点,一台硬盘节点,需要先启动硬盘节点。单节点不能设置为内存节点 集群环境: 节点名称 节点类型 vm-129原创 2017-01-02 02:21:07 · 3410 阅读 · 3 评论 -
RabbitMQ学习之集群镜像模式配置
1.增加负载均衡器关于负载均衡器,商业的比如F5的BIG-IP,Radware的AppDirector,是硬件架构的产品,可以实现很高的处理能力。但这些产品昂贵的价格会让人止步,所以我们还有软件负载均衡方案。互联网公司常用的软件LB一般有LVS、HAProxy、Nginx等。LVS是一个内核层的产品,主要在第四层负责数据包转发,使用较复杂。HAProxy和Nginx是应用层的产品,但Nginx原创 2014-11-09 01:52:05 · 7189 阅读 · 3 评论 -
RabbitMQ学习之集群部署
我们先搭建一个普通集群模式,在这个模式基础上再配置镜像模式实现高可用,Rabbit集群前增加一个反向代理,生产者、消费者通过反向代理访问RabbitMQ集群。架构图如下:原创 2014-11-09 01:01:30 · 3626 阅读 · 3 评论 -
RabbitMQ学习之集群模式
RabbitMQ的集群节点包括内存节点、磁盘节点。顾名思义内存节点就是将所有数据放在内存,磁盘节点将数据放在磁盘。不过,如前文所述,如果在投递消息时,打开了消息的持久化,那么即使是内存节点,数据还是安全的放在磁盘。原创 2014-11-08 23:24:04 · 6973 阅读 · 4 评论 -
RabbitMQ学习之spring配置文件rabbit标签的使用
下面我们通过一个实例原创 2014-11-08 17:43:31 · 18862 阅读 · 3 评论 -
RabbitMQ学习之messageconver插件实现(Gson)
RabbitMQ已经实现了Jackson的消息对消息转换原创 2014-11-08 17:19:57 · 8130 阅读 · 4 评论 -
RabbitMQ学习之基于spring-rabbitmq的RPC远程调用
spring-rabbitmq中实现远程接口调用,主要在com.rabbitmq.spring.remoting下几个类:发布服务端(Server):RabbitInvokerServiceExporter.java接口调用客户端(Client):RabbitInvokerProxyFactoryBean.java,RabbitInvokerClientInterceptor.java,原创 2014-11-08 15:12:47 · 5667 阅读 · 4 评论 -
RabbitMQ学习之基于spring-rabbitmq的消息异步发送
spring-rabbitmq的源码到原创 2014-11-08 14:44:57 · 6969 阅读 · 7 评论 -
RabbitMQ学习之spring整合发送异步消息(注解实现)
实现使用Exchange类型为DirectExchange. routingkey的名称默认为Queue的名称。异步发送消息。原创 2014-11-08 11:51:25 · 9711 阅读 · 4 评论 -
RabbitMQ学习之spring整合发送异步消息
实现使用Exchange类型为DirectExchange. routingkey的名称默认为Queue的名称。原创 2014-11-08 11:40:49 · 28344 阅读 · 6 评论 -
RabbitMQ学习之spring整合发送同步消息(注解实现)
上一篇文章通过xml配置rabbitmq的rabbitTemplate,本节将使用原创 2014-11-08 10:50:28 · 6524 阅读 · 4 评论 -
RabbitMQ学习之spring整合发送同步消息
以下实现使用Exchange类型为DirectExchange. routingkey的名称默认为Queue的名称。原创 2014-11-07 11:40:51 · 4311 阅读 · 7 评论 -
RabbitMQ学习之spring-amqp的重要类的认识
对于大多数应用来说都做了与spring整合,对于rabbitmq来说。也有与spring的整合。可能通过spring的官网找到spring-amqp项目下载。spring-amqp项目包括三个子项目:spring-amqp、spring-erlang、spring-rabbit. 下面来认识一下spring-amqp中的几个重要类;以spring-amqp-1.0.0.M3版本为例转载 2014-11-07 10:51:56 · 4267 阅读 · 8 评论 -
RabbitMQ学习之ConntectionFactory与Conntection的认知
在发送和接收消息重要的类有:ConnectionFactory, Connection,Channel和 QueueingConsumer。ConntectionFactory类是方便创建与AMQP代理相关联的Connection;下面来看看ConntectionFactory是如何创建一个Contention.首先通过new ConnectionFactory()创建一个Connection转载 2014-11-07 10:26:55 · 3165 阅读 · 3 评论 -
RabbitMQ学习之远程过程调用(RPC)(java)
在一般使用RabbitMQ做RPC很容易。客户端发送一个请求消息然后服务器回复一个响应消息。为了收到一个响应,我们需要发送一个'回调'的请求的队列地址。我们可以使用默认队列(在Java客户端除外)。AMQP协议给消息定义了14个属性。大部分的属性很少使用,除了下面几个: deliveryMode: 将消息标记为持久(值为2)或瞬态(任何其他值)。你可能记得在第二个教程中使用了这个属性。原创 2014-11-07 09:06:20 · 6914 阅读 · 4 评论 -
RabbitMQ学习之延时队列
在实际的业务中我们会遇见生产者产生的消息,不立即消费,而是延时一段时间在消费。RabbitMQ本身没有直接支持延迟队列功能,但是我们可以根据其特性Per-Queue Message TTL和 Dead Letter Exchanges实现延时队列。也可以通过改特性设置消息的优先级。原创 2016-12-11 20:13:04 · 10887 阅读 · 8 评论 -
RabbitMQ学习之消息可靠性及特性
下面主要从队列、消息发送、消息接收方面了解消息传递过的一些可靠性处理。原创 2017-01-02 01:53:47 · 5139 阅读 · 7 评论 -
RabbitMQ学习之exchange总结
前面介绍了几类exchange的作用,这个总结一下: direct:消息会被推送至绑定键(binding key)和消息发布附带的选择键(routing key)完全匹配的队列。默认有”AMQP default”,它用一个空字符串表示,它是direct类型的exchange,任何发往这个exchange的消息都会被路由到routing key的名字对应的队列上,如果没有对应的队列,则消息会被丢弃。原创 2017-01-02 00:11:17 · 2771 阅读 · 8 评论 -
RabbitMQ学习之Headers交换类型(java)
Headers类型的exchange使用的比较少,它也是忽略routingKey的一种路由方式。是使用Headers来匹配的。Headers是一个键值对,可以定义成Hashtable。发送者在发送的时候定义一些键值对,接收者也可以再绑定时候传入一些键值对,两者匹配的话,则对应的队列就可以收到消息。匹配有两种方式all和any。这两种方式是在接收端必须要用键值"x-mactch"来定义。all代表定原创 2014-11-08 19:24:33 · 11601 阅读 · 5 评论 -
RabbitMQ学习之主题topic(java)
参考:http://blog.csdn.net/lmj623565791/article/details/37706355direct类型的消息通过绑定键转发到队列,但是存在一些局限性:它不能够基于多重条件进行路由选择,有可能希望不仅根据日志的级别而且想根据日志的来源进行订阅,这就需要主题类型的转发器来实现。发往主题类型的转发器的消息不能随意的设置选择键(routing_key),必须原创 2014-11-07 08:54:08 · 3972 阅读 · 5 评论 -
RabbitMQ学习之路由(java)
参考:http://blog.csdn.net/lmj623565791/article/details/37669573使用direct类型实现:消息会被推送至绑定键(binding key)和消息发布附带的选择键(routing key)完全匹配的队列。例如:将不同的日志发送到不同的消费端。1.发送日志端SendLogDirect.javapackage cn.slim原创 2014-11-07 08:52:28 · 6043 阅读 · 5 评论 -
RabbitMQ学习之发布/订阅(java)
参考:http://blog.csdn.net/lmj623565791/article/details/37657225模拟发布订阅模式,一个消息发给多个消费者。实现一个发送日志,一个接收者将接收到的数据写到硬盘上,与此同时,另一个接收者把接收到的消息展现在屏幕上。转发器类型使用:fanout。fanout类型转发器特别简单,把所有它介绍到的消息,广播到所有它所知道的队列。chann原创 2014-11-07 08:51:17 · 4686 阅读 · 3 评论 -
RabbitMQ学习之工作队列(java)
参考:http://blog.csdn.net/lmj623565791/article/details/376200571.生产任务Task.javapackage cn.slimsmart.rabbitmq.demo.workqueue;import com.rabbitmq.client.AMQP;import com.rabbitmq.client.Channel;im原创 2014-11-07 08:50:16 · 5308 阅读 · 4 评论 -
RabbitMQ学习之helloword(java)
1.依赖jar包com.rabbitmqamqp-client3.0.42.生产者代码Send.javapackage cn.slimsmart.rabbitmq.demo.test;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabb原创 2014-11-05 22:40:50 · 10871 阅读 · 9 评论 -
RabbitMQ学习之安装
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是原创 2014-11-05 21:29:32 · 7561 阅读 · 9 评论