// 定义队列 helloworld,服务器不存在这个队列会新建队列,反之使用已存在的队列
// 在这里告诉服务器,让服务器准备好这个队列
c.queueDeclare(
"helloworld",
false, // 是否是持久队列
false, // 是否是排他队列(独占)
false, // 是否自动删除
null); // 其他的属性配置
<<-------
// 定义交换机
c.exchangeDeclare(“log”, BuiltinExchangeType.FANOUT);
--------->>
<<<-------
// 定义交换机
c.exchangeDeclare(“direct_logs”, BuiltinExchangeType.DIRECT);
--------->>>
<<<<-------
// 定义交换机
c.exchangeDeclare(“topic_logs”, BuiltinExchangeType.TOPIC);
------->>>>
// 发送消息
c.basicPublish(
"", // 第三种模式才会用到
"helloworld",
null, // 针对发送的这条消息,可以添加其他属性设置
"Hello world!".getBytes());
<----
c.basicPublish(
“”,
“task_queue”,
MessageProperties.PERSISTENT_TEXT_PLAIN,
msg.getBytes());
----->
<<---------
/*
参数:
1. 交换机的名称,简单模式和工作模式使用了默认的direct交换机
2. 用来指定队列,对于fanout交换机这个参数无效
3. 其他属性
4.
/
c.basicPublish(“log”, “”, null, msg.getBytes());
----------->>
<<<---------
/
第二个参数: 路由键,和绑定键进行匹配,将消息路由到匹配的队列
对于默认交换机这里用队列名来路由消息
/
c.basicPublish(“direct_logs”, key, null, msg.getBytes());
----------->>>
<<<<--------
/
第二个参数: 路由键,和绑定键进行匹配,将消息路由到匹配的队列
对于默认交换机这里用队列名来路由消息
*/
c.basicPublish(“topic_logs”, key, null, msg.getBytes());
------>>>>
//定义队列,要求服务器先把队列准备好
c.queueDeclare(“helloworld”,false,false,false,null);
<<---------
// 先做三件事: 1.定义队列 2.定义交换机 3.绑定
String queue = UUID.randomUUID().toString();
c.queueDeclare(queue, false, true, true, null);
c.exchangeDeclare(“log”, BuiltinExchangeType.FANOUT);
c.queueBind(queue, “log”, “”);
------------>>
<<<------
// 1.定义队列 2.定义交换机 3.绑定,要指定绑定键
// 让服务器自动命名,默认属性: false,true,true 非持久,独占,自动删除
String queue = c.queueDeclare().getQueue();
c.exchangeDeclare(“direct_logs”, BuiltinExchangeType.DIRECT);
------>>>
<<<<-----
// 1.定义队列 2.定义交换机 3.绑定,要指定绑定键
// 让服务器自动命名,默认属性: false,true,true 非持久,独占,自动删除
String queue = c.queueDeclare().getQueue();
c.exchangeDeclare(“topic_logs”, BuiltinExchangeType.TOPIC);
------->>>>
//从队列接收数据(消费数据)
//c.basicConsume(“helloworld”,true,用来处理消息的回调对象,取消消息处理时的回调对象);
c.basicConsume(“helloworld”,true,deliverCallback,cancelCallback);
<-------
// 开始消费数据之前,把qos设置成1
c.basicQos(1);
// 消费数据
/*
第二个参数 autoAck - 是否自动确认
true - 自动确认
false - 手动确认
*/
c.basicConsume("task_queue", false, deliverCallback, cancelCallback);
------------>