推荐学习1:推荐学习2:推荐学习3:02 介绍。AMQP的实现有:RabbitMQ、OpenAMQ、Apache Qpid、Redhat Enterprise MRG、AMQP Infrastructure、ØMQ、Zyre等。
RabbitMQ 的文章之前写过,但是当时给的示例是 Demo 版的,这篇文章主要是结合之前写的理论知识,将 RabbitMQ 集成到技术派项目中。下面我们先回顾一下理论知识,如果对这块知识已经清楚的同学,可以直接跳到实战部分。
在go-micro中异步消息的收发是通过Broker这个组件来完成的,底层实现有RabbitMQ、Kafka、Redis等等很多种方式,这篇文章主要介绍go-micro使用RabbitMQ收发数据的方法和原理。
当我们对消息设置了 TTL 和 DLX 之后,当消息正常发送,通过 Exchange 到达 Queue 之后,由于设置了 TTL 过期时间,并且消息没有被消费,达到过期时间之后,消息就转移到与之绑定的 DLX 死信队列之中。
那么一旦分离后再组合,就意味着服务之间一定会存在相互调用的过程,在前面微服务的定义中提到过,微服务之间都使用粗糙的通信机制,它一定是轻量级的,而且是可以支持跨语言调用的,包括微服务本身对客户端提供服务也是采用这种机制的。
你为啥要在项目中选择xxx消息中间件?提起消息队列,也许你的脑海里会不自觉地蹦出好多概念:JMS、Kafka、RocketMQ、AMQP、RabbitMQ、ActiveMQ、Pulsar、Redis Stream...