RabbitMQ

2019-03-31  本文已影响0人  蜡笔没了小新_e8c0

1.rabbitmq 的使用场景有哪些?

2.要保证消息持久化成功的条件有哪些?

注意:在创建了队列和交换机,就不能修改其标志了。

3.rabbitmq 有几种广播类型?

4.rabbitmq 中 vhost 的作用是什么?

vhost是rabbitmq分配权限的最小细粒度。比如我们可以为用户分配访问哪个vhost的权限,不能为用户分配交换器或者队列的权限。

一个broker可以开设多个vhost,用于不同用户的权限分离。

5.rabbitmq 怎么避免消息丢失?

    @Test
    public void contextLoads() throws IOException, TimeoutException {
        ConnectionFactory cf = new ConnectionFactory();
        cf.setHost("203.195.133.72");
        Connection conn =  cf.newConnection();

        Channel channel = conn.createChannel();

        channel.queueDeclare("ljc.news",true,false,false,null);
        String message = String.format("时间 => %s", new Date().getTime());
        try {
            channel.txSelect(); // 声明事务
            // 发送消息
            channel.basicPublish("", "ljc.news", MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes("UTF-8"));
            channel.txCommit(); // 提交事务
        } catch (Exception e) {
            channel.txRollback();   //回滚事务
        } finally {
            channel.close();
            conn.close();
        }
     }

利用事务模式发送消息和非事务发送相比,所需花费要高出很多。

上一篇 下一篇

猜你喜欢

热点阅读