rabbitmq
文章平均质量分 93
l192168134
这个作者很懒,什么都没留下…
展开
-
【架构】关于RabbitMQ
1 什么是RabbitMQ?RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然: 单向解耦 双向解耦(如:RPC) 例如一个日志系统,很容易使用RabbitM原创 2016-04-21 16:24:13 · 5105 阅读 · 0 评论 -
rabbitmq学习10:使用spring-amqp发送消息及异步接收消息
前面我们已经学习了发送消息及同步接收消息的例子了。下面我们来看看如何通过spring配置来实现异步接收消息。 现在我们建立两个WEB项目。发送消息的项目命名为”rabbitmq-demo-producer“ ,异步接受的消息项目名称”rabbitmq-demo-consumer“。 下面来看看rabbitmq-demo-producer项目中发送信息的程序及配置。 M原创 2016-04-22 14:30:59 · 4794 阅读 · 0 评论 -
rabbitmq学习8:spring-amqp的重要类的认识
对于大多数应用来说都做了与spring整合,对于rabbitmq来说。也有与spring的整合。可能通过spring的官网找到spring-amqp项目下载。spring-amqp项目包括三个子项目:spring-amqp、spring-erlang、spring-rabbit. 下面来认识一下spring-amqp中的几个重要类;以spring-amqp-1.0.0.M3版本为例原创 2016-04-22 14:30:12 · 4621 阅读 · 0 评论 -
rabbitmq学习7:ConntectionFactory与Conntection的认知
从前面几小节的学习,我们可能知道在发送和接收消息重要的类ConnectionFactory, Connection,Channel和QueueingConsumer。 ConntectionFactory类是方便创建与AMQP代理相关联的Connection;下面来看看ConntectionFactory是如何创建一个Contention. 首先通过new Connection原创 2016-04-22 14:29:26 · 737 阅读 · 0 评论 -
rabbitmq学习6:RPC
在《rabbitmq学习2:Work Queues 》中我们已经知道了在多个worker如何分配耗时的任务。如果我现在要在远程的机器上运行然后得到结果,那应当怎么做呢?那就要用到RPC(Remote Procedure Call or RPC )了! 关于RPC的介绍请参考百度百科里的关于RPC的介绍:http://baike.baidu.com/view/32726.htm#sub3原创 2016-04-22 14:28:47 · 439 阅读 · 0 评论 -
rabbitmq学习5:Topics
在前面的《rabbitmq学习4:Routing 》中使用一般的名字的路由,现在想通过一些路由规则让消费者来接受符合规则的消息?那应当怎么样呢?那就要用到类型为topic的Exchange了。Topics的工作示意图如下:我们可能从图中看到有*和#两个通配符。*表示通配一个词;#表示通配0个或多个词。下面让我们来看看Topics的程序如何实现的吧!P端的原创 2016-04-22 14:27:41 · 433 阅读 · 0 评论 -
rabbitmq学习4:Routing
在《rabbitmq学习3:Publish/Subscribe 》中已经学习了发送一个消息,所有消费者端都能收到。那现在这节准备介绍通过路由规则来接受生产者端所发送的消费。Routing的工作示意图如下:对于Routing的示意图与Publish/Subscribe中的示意图区别:第一:Publish/Subscribe的Exchange的类型为“fanout”,而Ro原创 2016-04-22 14:26:57 · 442 阅读 · 0 评论 -
rabbitmq学习3:Publish/Subscribe
在前面的Work Queue中的消息是均匀分配消息给消费者;如果我想把消息分发给所有的消费者呢?那应当怎么操作呢?这就是要下面提到的Publish/Subscribe(分布/订阅)。让我们开始Publish/Subscribe之旅吧!Publish/Subscribe的工作示意图如下:在上图中的X表示Exchange(交换区);Exchange的类型有:direct ,原创 2016-04-22 14:25:54 · 2883 阅读 · 0 评论 -
rabbitmq学习2:Work Queues
在前面的已经提到了一对一的情况;现在一个生产者与多个消费者的情况(Work Queues)。Work Queues的示意图如下: 对于上图的模型中对于c端的worker来说。RabbitMQ服务器可能一直发送多个消息给一个worker,而另一个可能几乎不做任何事情。这样就会导致一个worker很忙,而另一个却很空闲。这种情况可能都不想出现。如何解决这个问题呢。当然最理想原创 2016-04-22 14:25:20 · 527 阅读 · 0 评论 -
rabbitmq学习1:hello world
rabbitMQ是一个在AMQP基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License 开源协议。 关于amqp可参考http://www.oschina.net/p/rabbitmq/ rabbitmq是一个消费的代理;通过生产者客户端生产一个信息,转送给消费者客户端;在这个传输过程中,根据你的需要可以经过路由、缓冲、持久化来得到这个消息。原创 2016-04-22 14:24:21 · 456 阅读 · 0 评论 -
RabbitMQ学习之基于spring-rabbitmq的RPC远程调用
spring-rabbitmq中实现远程接口调用,主要在com.rabbitmq.spring.remoting下几个类:发布服务端(Server):RabbitInvokerServiceExporter.java接口调用客户端(Client):RabbitInvokerProxyFactoryBean.java,RabbitInvokerClientInterceptor.java,转载 2016-04-21 16:38:00 · 4207 阅读 · 1 评论 -
RabbitMQ学习之messageconver插件实现(Gson)
RabbitMQ已经实现了Jackson的消息转换(Jackson2JsonMessageConverter),由于考虑到效率,如下使用Gson实现消息转换。如下消息的转换类的接口MessageConverter,Jackson2JsonMessageConverter的父类AbstractJsonMessageConverter针对json转换的基类。我们实现Gson转载 2016-04-21 16:33:58 · 6496 阅读 · 1 评论 -
spring整合消息队列rabbitmq
ps:本文只是简单一个整合介绍,属于抛砖引玉,具体实现还需大家深入研究哈.. 1.首先是生产者配置?12345678910111213141516171819202122原创 2016-04-21 16:26:18 · 1520 阅读 · 0 评论 -
rabbitmq学习11:基于rabbitmq和spring-amqp的远程接口调用
此远程接口调用是基于RPC的 先来看看提供暴露接口方法的配置 Xml代码 xml version="1.0" encoding="UTF-8"?> beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org原创 2016-04-22 14:31:52 · 1225 阅读 · 0 评论