|
@@ -0,0 +1,37 @@
|
|
|
|
+package com.sf.helloworld.plus;
|
|
|
|
+
|
|
|
|
+import com.rabbitmq.client.Channel;
|
|
|
|
+import com.rabbitmq.client.Connection;
|
|
|
|
+import com.rabbitmq.client.ConnectionFactory;
|
|
|
|
+import com.sf.util.RabbitMqUtils;
|
|
|
|
+
|
|
|
|
+public class Producer {
|
|
|
|
+ // 声明交换机、队列和绑定关系的名字
|
|
|
|
+ private static final String EXCHANGE_NAME = "helloworld_exchange";
|
|
|
|
+ private static final String QUEUE_NAME = "helloworld_queue";
|
|
|
|
+ private static final String ROUTING_KEY = "helloworld";
|
|
|
|
+
|
|
|
|
+ public static void main(String[] args) throws Exception{
|
|
|
|
+// ConnectionFactory factory = new ConnectionFactory();
|
|
|
|
+// // 类似于mysql中的一个具体数据库
|
|
|
|
+//// factory.setVirtualHost("test");
|
|
|
|
+// factory.setUri("amqp://guest:guest@127.0.0.1/test");
|
|
|
|
+// Connection connection = factory.newConnection();
|
|
|
|
+// Channel channel = connection.createChannel();
|
|
|
|
+
|
|
|
|
+ Channel channel = RabbitMqUtils.getChannel();
|
|
|
|
+
|
|
|
|
+ // 声明交换机 -> 声明队列 -> 声明交换机和队列的绑定关系
|
|
|
|
+ // 对应参数为 交换机名字 交换机类型 是否序列化 是否自动删除 其他参数
|
|
|
|
+ channel.exchangeDeclare(EXCHANGE_NAME,"direct",false,false,null);
|
|
|
|
+ channel.queueDeclare(QUEUE_NAME,false,false,false,null);
|
|
|
|
+ // 将队列名 交换机名 和 路由的key 绑定在一起
|
|
|
|
+ channel.queueBind(QUEUE_NAME,EXCHANGE_NAME,ROUTING_KEY);
|
|
|
|
+
|
|
|
|
+ String message = "Hello World!";
|
|
|
|
+ // 发送消息时 是通过 交换机名字 路由的key + 消息的字节数组
|
|
|
|
+ channel.basicPublish(EXCHANGE_NAME,ROUTING_KEY,null,message.getBytes());
|
|
|
|
+
|
|
|
|
+ channel.close();
|
|
|
|
+ }
|
|
|
|
+}
|