第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

RabbitMQ快速入門

標簽:
Java

RabbitMQ是一种消息中间件,它接收和转发消息,可以理解为邮局。只是RabbitMQ接收,处理,转发的是二进制的数据,邮局处理的一般为纸。

基本概念

  • Producer(生产者): 发送消息的程序

  • Consumer(消费者):接收消息的程序

  • Queue(队列):像邮局的信箱,在RabbitMQ内部,同一个消息流只能存在一个Queue中,队列只受主机内存,磁盘的大小限制。 生产者像Queue中发送消息,消费者从Queue中取出消息

安装

  1. Mac OS

brew install rabbitmq
  1. CentOS7

cat << EOF > /etc/yum.repos.d/rabbit.repo
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/21/el/7gpgcheck=1gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.ascrepo_gpgcheck=0enabled=1EOF
yum install rabbitmq-server

Hello World

  1. 启动RabbitMQ

rabbitmq-server
  1. 添加Java依赖库

       <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
      </dependency>
      <dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-client</artifactId>
            <version>4.2.0</version>
      </dependency>
  1. 编写生产者

/**
 * @author aihe 2018/9/6
 */public class Producer {    private final static String QUEUE_NAME = "hello1";    public static void main(String[] args) throws IOException, TimeoutException {


        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost("127.0.0.1");
        Connection connection = connectionFactory.newConnection();
        Channel channel = connection.createChannel();

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

        String message = "Hello World";

        channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
        System.out.println("发送消息:" + message);        try {
            channel.close();
            connection.close();
        } catch (TimeoutException e) {
            e.printStackTrace();
        }
    }
}

channel.queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments)

  • queue 要声明的队列名称

  • durable 是否长久保存,true的话,服务器重启的时候,queue仍然存在

  • exclusive 是否声明一个排他的队列, 也就是只有当前的channel才能监听这个queue

  • autoDelete 当服务器不在使用这个queue的时候,自动删除它

  • arguments 其它的属性

生产和消费消息都是通过channel的。channel指定具体为那个queue

  1. 编写消费者

/**
 * @author aihe 2018/9/6
 */public class Consumer {    private final static String QUEUE_NAME = "hello1";    public static void main(String[] args) throws IOException, TimeoutException {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("127.0.0.1");
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        System.out.println(" [*] 正在等待消息. 退出按 CTRL+C");

        com.rabbitmq.client.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(" 接收消息:'" + message + "'");
            }
        };

        channel.basicConsume(QUEUE_NAME, true, consumer);

    }
}
  1. 运行

生产者


918

image.png

消费者


1000

image.png

额外

  1. 我们可以安装rabbitMQ的图形管理界面

// 查看有哪些插件rabbitmq-plugins list// 启用管理界面rabbitmq-plugins enable rabbitmq_management
  1. 进入管理界面
    进入地址:http://127.0.0.1:15672/
    账号和密码:guest guest


    1000

    image.png

1000

image.png

这些参数大部分都是可以从rabbitmqctl命令获得的。

最后

学习下消息中间件

参考


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質文章

正在加載中
JAVA開發(fā)工程師
手記
粉絲
1.1萬
獲贊與收藏
1545

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消