java mq 服务端_Java程序RabbitMQ服务端和客户端

先需要引入相关的依赖文件

com.rabbitmq

amqp-client

3.6.5

上来就是干:

编写链接工具类

public class ConnectionUtil {

private static ConnectionFactory factory;

private static Channel channel;

public static final String QUEUE_NAME = "cloud_attacking_dream";

/*

* 单例模式机制获取连接通道

* */

public static Channel initConnetion() throws IOException, TimeoutException {

if (null == factory && null == channel) {

factory = new ConnectionFactory();

factory.setHost("localhost");

factory.setPort(5672);

//本机调用,用户密码省略

/*factory.setUsername();

factory.setPassword();*/

Connection connection = factory.newConnection();

channel = connection.createChannel();

channel.queueDeclare(QUEUE_NAME, false, false, false, null);

}

return channel;

}

}

服务端代码:

/**

* @author licunzhi

* @desc 服务端(生产者)

* @date 2018-07-20

*/

public class Server {

public static void main(String[] args) throws IOException, TimeoutException, InterruptedException {

Channel channel = ConnectionUtil.initConnetion();

for (int i =0; i < 100; i++) {

String message = UUID.randomUUID().toString();

channel.basicPublish("", ConnectionUtil.QUEUE_NAME, null, message.getBytes("UTF-8"));

//定時發送消息 展示結果更加明顯

Thread.sleep(10000);

}

}

客户端代码

/**

* @author licunzhi

* @desc 客户端(消费者)

* @date 2018-07-20

*/

public class Client {

public static void main(String[] args) throws IOException, TimeoutException {

Channel channel = ConnectionUtil.initConnetion();

Consumer consumer = new DefaultConsumer(channel) {

@Override

public void handleDelivery(String consumerTag, Envelope envelope,

AMQP.BasicProperties properties, byte[] body)

throws IOException {

String message = new String(body, "UTF-8");

System.out.println("Customer Received '" + message + "'");

}

};

channel.basicConsume( ConnectionUtil.QUEUE_NAME, true, consumer);

}

}

运行项目查看结果展示:

ada909b7faf64c22121d7cb8e842414c.png

如果这些看着还是不爽  还是不解的话 :没关系  我有代码给你玩:

最后欢迎大佬加群指点:589780530

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值