美文网首页
RabbitMQ(一)

RabbitMQ(一)

作者: 尼尔君 | 来源:发表于2020-08-19 00:10 被阅读0次

    pom

     <!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -->
        <dependency>
          <groupId>com.rabbitmq</groupId>
          <artifactId>amqp-client</artifactId>
          <version>5.9.0</version>
        </dependency>
    

    生产者

    
    public class App 
    {
        public static void main( String[] args )
        {
    
            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost(" ");
            factory.setPort( );
            factory.setUsername(" ");
            factory.setPassword(" ");
    
    
            try (Connection connection = factory.newConnection();
                 Channel channel = connection.createChannel()) {
    
                channel.queueDeclare("nihao",false,false,false,null);
    
                String  message = "世界你好!";
    
                channel.basicPublish("","nihao",null,message.getBytes());
    
    
            } catch (TimeoutException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    

    消费者

    package org.example;
    
    import com.rabbitmq.client.Channel;
    import com.rabbitmq.client.Connection;
    import com.rabbitmq.client.ConnectionFactory;
    import com.rabbitmq.client.DeliverCallback;
    
    import java.io.IOException;
    import java.util.concurrent.TimeoutException;
    
    /**
     * @author nier
     * @create 2020-08-18 23:56
     */
    
    public class Consumer {
        public static void main(String[] args) throws IOException, TimeoutException {
    
            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost();
            factory.setPort();
            factory.setUsername();
            factory.setPassword();
    
            Connection connection = factory.newConnection();
            Channel channel = connection.createChannel();
    
            /**
             * 参数1 队列名称
             * 参数2 是否持久化
             * 参数3 是否独占(当前连接)
             * 参数4 消费后是否自动删除
             * 参数5 其他配置
             */
            channel.queueDeclare("nihao", false, false, false, null);
            System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
            DeliverCallback deliverCallback = (consumerTag, delivery) -> {
                String message = new String(delivery.getBody(), "UTF-8");
                System.out.println(" [x] Received '" + message + "'");
            };
    
            /**
             * @param queue队列名称
             * @param autoAck如果服务器应考虑消息,则为true
             * @param 交付后确认; 如果服务器应该期望则返回false
             * @param deliveryCallback传递消息时的回调
             * @param cancelCallback取消使用方时的回调
             * @return 返回服务器生成的consumerTag
             */
            channel.basicConsume("nihao", true, deliverCallback, consumerTag -> { });
        }
    }
    
    

    相关文章

      网友评论

          本文标题:RabbitMQ(一)

          本文链接:https://www.haomeiwen.com/subject/thiljktx.html