包含标签 RabbitMQ 的文章

RabbitMQ connection channel 的关系

Rabbit java client 发送消息代码如下 1 2 3 4 5 6 7 8 Connection connection = connectionFactory.newConnection(); Channel channel = connection.createChannel(); AMQP.BasicProperties basicProperties = new AMQP.BasicProperties().builder() .messageId(UUID.randomUUID().toString()) .build(); channel.basicPublish("biz","dev.hello",false,basicProperties,"Hello World".getBytes()); channel.close(); connection.close(); 对于 AMQP 0-9-1 网络连接,一个客户端会与 Broker 建立一个 Tcp 长连接(Connection),并使用轻量级连接(Channel)来实现多路复用的效果。……

阅读全文

RabbitMQ 和 Kafka 应用原理简单对比

在实际工作中用到了 RabbitMQ 和 Kafka,本篇文章围绕二者在使用上的一些认知进行展开,不涉及技术细节,仅做实践上的参考。 RabbitMQ 多用于处理业务系统之间的信息交互,所以需要保证消息的可靠性和幂等性,我在项目中实际使用的是 at-least-once 投递方式,然后针对每条消息做幂等处理。 在使用 Spring Boot AMQP 或者其他 Rabbit clien开发……

阅读全文

rabbitmq 如何提高可靠性并保证消费端幂等

什么是消息的可靠性 简单讲就是,一条消息由生产者发送出来,到 broker 上,存储到消息队列,再被消费者成功的消费。如果消息传着传着就传没了,此时消息就是不可靠的。 为什么要提高消息可靠性 拿订单或者交易举例,但凡涉及到与钱相关的系统,不允许出现任何数据偏差,如果因为在使用消息队列而丢失了数据,那……

阅读全文

AMQ Model总结

前言 最近在写公司的消息队列组件,因为使用的是 RabbitMQ,其实现的规范是基于 AMQP-0-9-1 ,所以抽时间把官方的规范过了一遍,整理出主要的内容,记录于此。 AMQ 模型架构(AMQ Model Architecture) 基础组件 Publisher application 发送者 Consumer application 消费者 Server AMQP 服务器 Virtual host 在 Server 中提供逻辑隔离,类似于 MySQL 数据库中的多个表 Exchange 将消息根据不同的配置路由到……

阅读全文