栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

RabbitMQ快速入门--simple简单模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RabbitMQ快速入门--simple简单模式

一.maven导入依赖
 
    
        com.rabbitmq
        amqp-client
        4.10.0
    
    
    
        org.slf4j
        slf4j-log4j12
        1.7.25
        test
    
    
    
        org.apache.commons
        commons-lang3
        3.9
    

 二.创建消费者与生产者

如图简单的--simple简单模式是一个生产一个消费这样形成一个简单的消息队列的入门

  1. 消息产生着&&将消息放入队列
  2. 消息的消费者(consumer) 监听(while) 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除(隐患 消息可能没有被消费者正确处理,已经从队列中消失了,造成消息的丢失)应用场景:聊天(中间有一个过度的服务器;p端,c端)


 三.编写生产者代码

这里个人感觉和原生的jdbc很像,先创建连接信息再去进行操作

package com.lanlan.Simple;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class sheng {
    //所有中间键技术都是基于tcp/ip协议之上来构建,只不过rabbitma是遵循ampq协议
    public static void main(String[] args) throws IOException, TimeoutException {
       //1:创建连接工程
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost("101.35.114.23"); //填写你的ip
        connectionFactory.setPort(5672);            //mq 默认端口
        connectionFactory.setUsername("guest");     //mq 管理员账号
        connectionFactory.setPassword("guest");     //mq 管理员密码
        connectionFactory.setVirtualHost("/");
        //为下面提供对象
        Connection connection = null;
        Channel channel = null;
        try{
            //2:创建连接connnction
            connection = connectionFactory.newConnection("客户端看见的消息");
            //3:通过连接获取通道
            channel = connection.createChannel();
            //4:通过创建交换机,声明队列。绑定关系。路由key,发送消息,和接收消息
            String queueName = "queue1";
            
            channel.queueDeclare(queueName,false,false,false,null);
            //5:准备消息内容
            String message ="蓝蓝的代码人!!!!";
            //6:发送出去给队列
            channel.basicPublish("",queueName,null,message.getBytes());
            System.err.println("发送消息成功");
        } catch (IOException | TimeoutException e) {
            e.printStackTrace();
        } finally {
            //7:关闭通道
            if (channel!=null&& channel.isOpen()){
              channel.close();
            }
            //8:关闭连接
            if (connection !=null && connection.isOpen()){
                connection.close();
            }
        }
    }
}


 这里感兴趣的可以打一个断点去看一下。


  四.编写消费者代码

 现在我们的生产者已经将信息发到了消息队列,我们应该编写一个消费找一条信息。

package lanlan.Simple;

import com.rabbitmq.client.*;
import java.io.IOException;
public class xiao {

    //所有中间键技术都是基于tcp/ip协议之上来构建,只不过rabbitma是遵循ampq协议
    public static void main(String[] args) throws Exception {
        //1:创建连接工程
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost("101.35.114.64");
        connectionFactory.setPort(5672);
        connectionFactory.setUsername("guest");
        connectionFactory.setPassword("guest");
        connectionFactory.setVirtualHost("/");
        //为下面提供对象
        Connection connection = null;
        Channel channel = null;
        try{
            //2:创建连接connnction
            connection = connectionFactory.newConnection("客户端看见的消息");
            //3:通过连接获取通道xs
            channel = connection.createChannel();


            channel.queueDeclare("queue1", false, false, false, null);
            DeliverCallback deliverCallback = (consumerTag, delivery) -> {
                String message = new String(delivery.getBody(), "UTF-8");
                System.out.println("消费的消息是" + message + "'");
            };
            channel.basicConsume("queue1", true, deliverCallback, consumerTag -> { });

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //7:关闭通道
            if (channel!=null&& channel.isOpen()){
                channel.close();
            }
            //8:关闭连接
            if (connection !=null && connection.isOpen()){
                connection.close();
            }
        }
    }

}

 写好代码然后去消费他

 

  


 

这样简单的入门就完成了

 

 

 

  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996129.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号