java操作rabbitmq实现简单的消息发送(socket编程的升级)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

准备:

  1.下载rabbitmq并搭建环境(和python那篇一样:http://www.cnblogs.com/g177w/p/8176797.html)

  2.下载支持的jar包(http://repo1.maven.org/maven2/com/rabbitmq/amqp-client)

生产者方(Productor.java):

 package RabbitMQTest;

 import java.util.HashMap;
import java.util.Map; import com.rabbitmq.client.AMQP.Queue;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory; public class Productor {
public static String QUEUE_NAME = "STEVEN";
public static void main(String[] args) {
//初始化socket链接
ConnectionFactory factory = new ConnectionFactory();
//指定链接地址
factory.setHost("localhost");
try{
//建立程序和rabbitmq的socket连接
Connection connection = factory.newConnection();
//创建管道
Channel channel = connection.createChannel();
//声明队列
channel.queueDeclare(QUEUE_NAME,false,false,false,null);
//让当前线程睡眠8s,以检验rabbitmq的消息轮询
Thread.currentThread().sleep(8000);
String message = "hello,world";
//发送消息
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
System.out.println("[x] send the message"+message);
channel.close();
connection.close();
}catch (Exception e) {
System.out.println("程序出错:"+e);
} }
}

消费者方(Consummer.java):

 package RabbitMQTest;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.QueueingConsumer;
import com.rabbitmq.client.QueueingConsumer.Delivery;
/**
* 本程序为了练习rabbitmq的简单操作
*
* @author STEVEN
*
*/
public class Consumer {
public static void main(String[] args) {
try {
//创建连接工厂对象
ConnectionFactory factory = new ConnectionFactory();
//设置工厂对象的参数,用来连接rabbitmq
factory.setHost("localhost");
//建立程序与rabbitmq的socket连接
Connection connection = factory.newConnection();
//创建管道
Channel channel = connection.createChannel();
//声明队列
channel.queueDeclare(Productor.QUEUE_NAME, false, false, false, null);
System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
//创建队列消费对象
QueueingConsumer consumer = new QueueingConsumer(channel);
//设置参数
channel.basicConsume(Productor.QUEUE_NAME, true, consumer);
//创建接收对象来接收来自服务端的消息
Delivery delivery = null;
//循环接收,相当于开启了一个监听
while (true) {
delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
System.out.println(" [x] Received '" + message + "'");
}
} catch (Exception e) {
System.out.println(e);
}
}
}
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: JavaRabbitMQ

“java操作rabbitmq实现简单的消息发送(socket编程的升级)” 的相关文章

Dijkstra算法求解最短距离问题

6 8 0 //6个顶点八条边 0 1 1//0到1的边权为1 0 3 4 0 4 4 1 3 2 2 5 1 3 2 2 3 4 3 4 5 3 #include<cstdio> #include<iostream> #include&l...

QtConcurrent

当我们想在一个或多个辅助线程执行的同时做一些后台处理且无须使用QThread所提供的全部功能和灵活性时,就可以使用QRunnable和QtConcurrent::run()方法. QtConcurrent::run()函数的参数包含一个函数,一个或多个传递给...

Linux设置网络代理-CSDN博客

设置网络代理操作简介 设置临时代理仅在当前shell会话生效 # export http_proxy=http://ip:port # export https_proxy=http://ip:port 设置永久代理 # vi /etc/profile #...

Python虚拟机字节码之装饰器怎么实现 - 开发技术

今天小编给大家分享一下Python虚拟机字节码之装饰器怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Python 常见字节码LOAD_CONST...

Java单例模式复习(三)

心血来潮,在学学单例模式,以下是代码块:具备前面两种实现方式,package singleton; public class SingletonStatic { private SingletonStatic() { System.out.println("stati...

在ibatis中使用自增

<selectKey keyProperty="folderId" resultClass="java.lang.Integer"> select XD_FolderID.nextval as folderId from dual </selectKey>把这一段写在in...