异步消息:RabbitMQ简介

 

Asynchronous Messaging: RabbitMQ Introduction

译自:https://dzone.com/articles/asynchronous-messaging-rabbitmq-introduction

By Janvn Aug.20.2019

 

提要:

了解RabbitMQ开源消息代理如何在微服务中进行异步通信。

正文:

RabbitMQ被认为是一种稳定的开源消息代理实现。它被许多人认为是JMS的自然演化。其所带来的是不同的和异构间的互操作性。实际上,例如,.Net中的客户端可以与Java上的消费者无缝地交换消息,而对这些消息中的任何一个都进行最小的更改。值得注意的是,RabbitMQ是使用Erlang构建的,Erlang是内置支持容错的电信系统中的主导语言。

RabbitMQ将AMQP(Advanced messaging queuing protocol高级消息队列协议)的使用提升为用于交换消息的线路级协议或网络协议。它是一种二进制协议,用于处理消息内容的编码和编组的低级细节。

在架构上,RabbitMQ具有以下优势:

可靠性:除了使用Erlang构建外,RabbitMQ还可以配置为持久化消息,以便在服务器崩溃时可以恢复所有消息。此外,生产者和消费者可以正确地接收/传递消息。

定制路由:RabbitMQ通过交换使用支持不同的路由机制,它可以通过直接路由提供点对点通信,选择性消息传递,类似于JMS消息选择器,这样只有携带某个“路由密钥”的事件才能传递到队列。

内置支持集群和高可用性:RabbitMQ的许多实例可以在单个群集下进行逻辑分组,以便在崩溃的情况下提供冗余并最终实现高可用性。

脚本和管理:RabbitMQ提供基于Web的控制台,用于监视和管理。此外,它还提供了一个命令行界面,可通过脚本自动执行其管理。

多功能性:针对不同平台/技术的客户端众多。

Terminology(术语)

 由于看图更加直观,因此让我们从RabbitMQ文档中的高级原理图开始。

https://www.rabbitmq.com/img/tutorials/intro/hello-world-example-routing.png

Publisher发布者:发送消息源的一方。

Consumer消费者:表示对一条或多条消息感兴趣的目标方。

Message Broker消息代理:RabbitMQ中的消息传递解决方案。它由以下部分组成:

Exchanges交换:描述消息代理上首先传递所有消息的中间端点/阶段的抽象。

Queues队列:exchange发送消息的中间端点。

Route路由:提供路由策略,以定义如何以及何时将exchange上的消息中继到队列。通常采用路由密钥的形式,并遵循绑定定义。

 

在下一部分中,我们将了解通过RabbitMQ交换信息的不同类型的交换和各种模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值