龙空技术网

如何高效部署分布式消息队列?这份绝对可以帮到你

Java架构师丨苏先生 643

前言:

此刻小伙伴们对“分布式消息队列有哪些结构”大致比较关切,你们都想要了解一些“分布式消息队列有哪些结构”的相关内容。那么小编在网上收集了一些有关“分布式消息队列有哪些结构””的相关文章,希望咱们能喜欢,朋友们快快来学习一下吧!

消息队列提供一个异步通信协议,消息的发送者不用一直等待。直到消息被成功处理;而是立即返回。消息被暂存于队列当中,对消息感兴趣的消费者会订阅消息并处理它们。那么,在什么样的场景下需要使用消息队列呢?其中之一就是系统集成。这些系统可能是公司的遗留系统,抑或是第三方维护的系统。集成的方法有很多,其中之一是让这些系统往数据库的某几张表写人数据,然后让新的系统定时地去轮询并取出数据进行处理。这已经具备了消息队列通信的雏形:其中的数据库表就是消息队列,它定义了消息的标准结构,并暂存待处理的消息。对于小型系统和简单的需求来讲,这样的解决方案没什么问题,并且足够应付了。但是随着日后业务需求的扩张,接人的系统越来越多,对于消息通信的需求也变得越来越复杂:

你需要将同一条消息发送给多个感兴趣的系统,同时又需要让系统只接受符合特定模式的消息。你开始觉得系统当中的同步处理方式严重影响了吞吐量,你想把用户订单处理、消息通知等都修改成异步处理的方式。你开始关注系统的高可用性。同时你还想实时观测系统当中订单消息的处理速率,以便及时应对峰值压力。

通过使用标准的消息队列系统就可以轻松处理以上问题。当然它们提供的功能远不止这些。市面上有很多开放源码的消息队列系统,包括JBossMessaging、JORAM、Apache ActiveMQ、Sun Open Message Queue、Apache Qpid、RabbiMQ等等。

其中就有本文讨论的RabbitMQ。它实现了AMQP协议,并且遵循Mozilla PublicLicense开源协议。它支持多种编程语言,可以方便地和Spring集成。最重要的一点是,使用消息队列并不是“杀鸡焉用牛刀”的问题,而是一种未雨绸缪,随着系统不断演进,你终将从消息队列中获益。

本文大纲(思维导图)

说明:RabbitMQ实战学习文档的细节内容属实过多(共334页),故小编只在本文中截取了部分的知识点及目录大纲进行粗略的简介和展示,完整的学习文档无法在本文一一展示,文末有本学习文档的获取方式,欢迎白嫖!

一、RabbitMQ简介

解释AMQP协议的起源、RabbitMQ的诞生,以及它能解决什么样的行业问题。下一步,你将安装服务器并创建第一个 Hello World程序,通过RabbitMQ来发送数据。

白嫖方式:帮忙转发+转发+转发一下本文,然后私信小编777即可获取本RabbitMQ学习文档的下载方式

二、理解消息通信

你将沉浸在消息通信的世界中。我们从基础概念讲起,再到如何将这些概念映射到AMQP (该协议用于RabbitMQ)。之后,你将学习消息持久化,以及消息的生命周期:从消息的发布开始,直到在网络的另一头进行消费。

三、运行和管理Rabbit

展示基本服务器管理。你将看到如何启动和停止节点、如何配置权限,以及如何获取服务器数据统计。我们会给你--些有用的提示来为服务器做故障排除。

四、解决Rabbit相关问题:编码与模式

介绍消息通信模式和最佳实践。你将学习发后即忘( fire- and-forget )模型、RPC架构等。

五、集群并处理失败

开启了RabitMQ集群和高可用性设置系列。在此,你将在本机和物理服务器上设置RabbitMQ集群。你将学习如何升级RabbiMQ集群节点,以及如何使用镜像队列。

六、从故障中恢复

介绍如何使用HAProxy为RabbitMQ服务器做负载均衡。你也会学到如何创建智能的消息通信客户端,知道如何在服务器发生故障的时候进行重连。

七、warren和Shovel:故障转移和复制

介绍主/备服务器是如何工作的,并以此结束了高可用性系列的讨论。你也将学习Shovel插件,它允许RabbiMQ跨越数据中心复制数据。

八、从Web端管理RabbitMQ

展示如何对RabbitMQ进行管理。你将学习RabbitMQ Management插件及其Web界面。这一章的内容不止于此。我们还将展示该插件所提供的REST API概要。

九、使用REST API控制Rabbit

详细介绍REST API。你将学到如何通过使用该API来完成绝大多数的管理任务。为应用程序配置用户和虚拟主机提供前所未有的便利。

十、监控

教你如何监控RabbitMQ,包括使用Nagios检测、使用AMQP和RESTAPI来监控服务器的内部状态。你将学会如何通过检测问题来防患于未然。

十一、提升性能,保障安全

详细介绍交换器的内部工作机制(RabbitMQ使用的路由算法)。我们将深人了解消息通信结构使用的资源细节,看看可以从架构决策中预见到什么。我们也会通过介绍为应用程序启用SSL连接来讲解RabitMQ的安全性。

十二、聪明的Rabbit:扩展RabbitMQ

将以如何通过添加新的插件来扩展RabiMQ的行为来结束整本书。这些插件既可以是别人编写发布的,也可以是你自己创建的。

学习感言:

RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,或者简单地将作业排队以便让分布式服务器进行处理。这无关乎项目的大小:RabbitMQ能够适应你的需要。

记得帮忙转发+转发+转发;然后再私信小编【777】即可获取文档的下载方式,欢迎白嫖。

标签: #分布式消息队列有哪些结构 #分布式 消息队列