开源框架rabbitMQ

RabbitMQ:api

安装:浏览器

  1.安装erlang开发环境。服务器

  2.安装RabbitMQ,安装RabbitMQ插件,这样能够在浏览器操做Rabbit MQ;tcp

步骤:插件

  

 

  rabbitMQ消息队列做为服务器,生茶者和消费者是客户端。blog

  生产者步骤:rabbitmq

 ConnectionFactory factory = new ConnectionFactory();             factory.setHost("localhost");             factory.setPort(5672);             factory.setUsername("guest");             factory.setPassword("guest");             factory.setVirtualHost("/");//rabbitmq默认虚拟机名称为“/”,虚拟机至关于一个独立的mq服务队列

    1.经过建立一个链接工厂来来链接主机、端口号、用户名、密码。路由

  2.经过这个工厂生成一个tcp链接,经过该链接建立通道。开发

  3.经过通道定义一个队列

 /**              * 声明队列,若是Rabbit中没有此队列将自动建立              * param1:队列名称              * param2:是否持久化              * param3:队列是否独占此链接              * param4:队列再也不使用时是否自动删除此队列              * param5:队列参数              */             channel.queueDeclare(QUEUE, true, false, false, null);

  4.定义一个字符串消息

  5.经过通道调用api,发布该消息。

  消费者步骤:

  1.建立工厂。建立链接,建立通道,声明队列。

  2.经过通道调用api,肯定监听哪一个队列,监听成功,而后调用哪一个方法。channel.basicConsume(QUEUE, true, consumer);

  3.方法定义,经过这个方法就能够得到消息内容  DefaultConsumer consumer = new DefaultConsumer(channel) { }这个是匿名内部类,里边要实现一个handleDelivery方法,这个方法会被自动调用,能够在这个方法内处理消息。

  

一、发送端操做流程

1)建立链接
2)建立通道
3)声明队列

4)发送消息 二、接收端

1)建立链接
2)建立通道
3)声明队列

4)监听队列
5)接收消息

 

RabbitMQ消息队列使用流程文字化叙述:首先生产者即客户端,要建立链接,而后建立通道,经过通道建立交换机(声明交换机类型)和队列,而后绑定某个交换机和某个队列,而且指定路由key,这样发送消息给交换机时候,会指定路由key,而后交换机根据与本身绑定的队列看看有没有路由key相符合的,发送给它,发送wan之后,消费者监听到之后,就会调用相应的消费方法。

 

RabbitMQ工做模式:对于 任务太重或任务较多状况使用工做队列能够提升任务处理的速度。

 

1. 工做队列:使用默认的交换机(全部的队列都会和默认交换机链接,路由key是队列名字),发送消息时,路由key是队列的名字。 

  有两个或两个以上消费者监听同一个队列,而后轮流从队列取出消息。

  一个交换机,一个队列,多个消费者。

 

 2.发布订阅模式:适合那种注册成功,短信邮箱一块儿通知。

定义交换机,要选择交换机类型为发布订阅类型,绑定交换机和消息队列,不指定路由key,交换机会把消息发送给每个消息队列。

3.路由模式:

定义新的交换机,要选择交换机类型为路由类型,须要绑定交换机和消息队列,绑定时须要指定消息队列在这个交换机中的路由key,而后向这个交换机发布消息时

指定路由key,就会将消息发送给指定的消息队列。

4.通配符模式:有这样一个案例,根据用户的设置,来决定用户接受短信、邮件、仍是都接受,若是使用路由模式,那么一条消息根据路由key,只能匹配上短信或者邮件,不能两个都匹配,而使用通配符模式,就能够实现二者都匹配或者只匹配一个。

和路由模式同样,只是路由key设置的是带通配符的,这样就能够模糊匹配了。

 

 5.Header模式:

header模式与routing不一样的地方在于,header模式取消routingkey,使用header中的 key/value(键值对)匹配 队列。
案例:
根据用户的通知设置去通知用户,设置接收Email的用户只接收Email,设置接收sms的用户只接收sms,设置两种 通知类型都接收的则两种通知都有效。

6.RPC模式

相关文章
相关标签/搜索