Board logo

标题: RabbitMQ在分布式系统中的应用(1) [打印本页]

作者: look_w    时间: 2018-12-24 20:32     标题: RabbitMQ在分布式系统中的应用(1)

怎么保证可靠性的?RabbitMQ提供了几种特性,牺牲了一点性能代价,提供了可靠性的保证。
    durable=true       channel.queueDeclare("task_queue", durable, false, false, null); // 队列      channel.basicPublish("", "task_queue",        MessageProperties.PERSISTENT_TEXT_PLAIN,        message.getBytes()); // 消息注:当声明的队列已经存在时,尝试重新定义它的durable是不生效的。
    autoAck = false;    requeue = true;    channel.basicConsume(queue, autoAck, callback);    channel.basicAck();//应答    channel.basicReject(deliveryTag, requeue); // 拒绝    channel.basicRecover(requeue); // 恢复    channel.confirmSelect(); // 进入confirm模式    // do publish messages... 每条消息都会被编号,从1开始    channel.getNextPublishSeqNo() // 查看下一条要发送的消息的序号    channel.waitForConfirms(); // 等待所有消息发送并确认    channel.txSelect();    try {        // do something...        channel.txCommit();    } catch (e){        channel.txRollback();    }注:由于exclusive类型的队列会在client和server连接断开时被删掉,所以对它设置持久化属性和备份都是没有意义的。





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0