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界面 消费消息

  • 相关阅读:
    七十年前往事的回顾:偷窥造酒作坊的裸体男人
    Python画图工具matplotlib的安装
    版本号控制-搭建gitserver
    HDU 4405 概率期望DP
    下载jdk文件后缀是.gz而不是.tar.gz怎么办
    《小亚和小信》小强,你就长点心吧!
    7.11 小结
    动态规划 LCS,LIS
    每秒更新时间 v-text的应用 (解决闪现{}问题)
    vue 引入组件
  • 原文地址:https://www.cnblogs.com/Jomini/p/13700777.html
Copyright © 2011-2022 走看看