zoukankan      html  css  js  c++  java
  • rabbitMq(一)内部消息分发

    pom文件

        <dependencies>
            <dependency>
                <groupId>com.rabbitmq</groupId>
                <artifactId>amqp-client</artifactId>
                <version>5.1.2</version>
            </dependency>
        </dependencies>

    测试

    public static void main(String[] args) {
            //创建连接工厂
            ConnectionFactory factory = new ConnectionFactory();
    
            // 设置连接属性
            factory.setHost("localhost");
            factory.setPort(5672);
            factory.setUsername("admin");
            factory.setPassword("admin");
    
            Connection connection = null;
            Channel channel = null;
    
            try{
                // 3、 从链接工厂获取连接
                connection = factory.newConnection("生产者");
    
                // 4、从链接中创建通道
                channel = connection.createChannel();
    
                /**
                 * 5、声明队列
                 * @param queue 队列名称
                 * @param durable 是否持久化
                 * @param exclusive 是否排他
                 * @param autoDelete 是否自动删除
                 * @param arguments 队列参数
                 */
                //channel.queueDeclare("qeueu1", false, false, null)
                channel.queueDeclare("queue1", false, false,false, null);
    
                //消息内容
                String message = "hellow world";
    
                // 6、发起消息
                channel.basicPublish("","queue1",null,message.getBytes());
                System.out.println("消息已发送。");
    
    
            }catch (IOException e){
                e.printStackTrace();
            }catch (TimeoutException e1){
                e1.printStackTrace();
            }
        }
    

     rabbitmq界面

     

    消费者

     public static void main(String[] args) {
            //创建连接工厂
            ConnectionFactory factory = new ConnectionFactory();
    
            // 设置连接属性
            factory.setHost("localhost");
            factory.setPort(5672);
            factory.setUsername("admin");
            factory.setPassword("admin");
    
            Connection connection = null;
            Channel channel = null;
    
            try{
                // 3、 从链接工厂获取连接
                connection = factory.newConnection("消费者");
    
                // 4、从链接中创建通道
                channel = connection.createChannel();
    
                /**
                 * 5、声明队列
                 * @param queue 队列名称
                 * @param durable 是否持久化
                 * @param exclusive 是否排他
                 * @param autoDelete 是否自动删除
                 * @param arguments 队列参数
                 */
                //channel.queueDeclare("qeueu1", false, false, null)
                channel.queueDeclare("queue1", false, false,false, null);
    
                // 6、发起消息
                DeliverCallback callback = new DeliverCallback() {
                    public void handle(String consumerTag, Delivery delivery) throws IOException {
                        System.out.println("收到消息: " + new String(delivery.getBody(),"UTF-8"));
                    }
                };
    
                //7、监听队列
                channel.basicConsume("queue1", true, callback, new CancelCallback() {
                    public void handle(String s) throws IOException {
    
                    }
                });
    
            System.out.println("收到消息。");
            System.in.read();
    
    
            }catch (IOException e){
                e.printStackTrace();
            }catch (TimeoutException e1){
                e1.printStackTrace();
            }
        }
    

      rabbitmq界面 消费消息

  • 相关阅读:
    sql server 分组,取每组的前几行数据
    安装vim的ycm
    Linux下管道重定向使用以及Shell编程(操作系统)
    VirtualBox安装及Linux基本操作(操作系统实验一)
    创建表并查看表(数据库实验一)
    SQL SERVER安装(2008)
    ADT图及图的实现及图的应用
    并查集实现及使用
    堆及堆的应用/单调队列/堆排序
    AVL树/线索二叉树
  • 原文地址:https://www.cnblogs.com/Jomini/p/13700777.html
Copyright © 2011-2022 走看看