开源框架rabbitMQ

RabbitMQ:

安装:

  1.安装erlang开发环境。

  2.安装RabbitMQ,安装RabbitMQ插件,这样可以在浏览器操作Rabbit MQ;

步骤:

  

 

  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、发送端操作流程

1)创建连接
2)创建通道
3)声明队列

4)发送消息 2、接收端

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模式

 

 

 

posted @ 2019-11-05 15:35  高鸣泽  阅读(686)  评论(0)    收藏  举报