`
spartan1
  • 浏览: 365140 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

分布式系统之消息中间件rabbitmq

 
阅读更多

既然要做分布式系统,就不得不说分布式消息通信系统。分布式系统的基础是各个分布式单元能够以各种方式互相通信,分布式消息中间件比较有名的开源实现有rabbitMQ,zeroMQ(库),ActiveMQ等,本篇先考察一下著名的消息中间件rabbitmq

 

rabbitmq在2010年4月被SpringSource收购,后者是vmware的一个部门,就是说,rabbitmq目前已经是vmware的了。

 

rabbitmq使用erlang语言编写,实现了AMQP协议。AMQP协议在04年中~06年中由摩根大通集团和iMatix公司开发,后来由AMQP工作组维护。最初用于金融领域,后来慢慢成为一个通用的协议。与JMS不同,AMQP定义了详细的消息格式,因此任何语言开发的软件都可以与其他语言开发的软件进行互通,只要他们的消息格式一致即可。

 

AMQP协议定义了Message Broker作为消息服务器,定义了User作为消息服务器的使用者(producer或consumer),User和Message Broker之间可以建立物理连接Connection,在Connection上,可以创建虚拟连接channel。基于Channel,可以声明(declare)交换机exchange,队列queue,可以在exchange和queue间建立绑定binding,Message由生产者发送到exchange,然后按照规则发送给binding到该exchange的queue。Message分为头部和消息体,其中头部包含了routing-key,而binding也有routing-key的属性,不过这个binding的这个属性可以是一个或多个明确的routing-key,也可以是一个或多个pattern。

 

exchange和queue之间可以有多个binding,一个exchange可以bind多个queue,一个queue也可以bind到多个exchange。这里exchange相当于硬件的交换机,但queue不是连线,而是一个缓存,binding是queue和exchange之间的关系。虽然exchange和queue之间可以有多个binding,但不会导致一个消息会从exchange重复发送给同一个queue,一个消息从一个exchange最多发送一次给一个queue。

 

binding实际上是exchange上的一条配置规则。

 

2011年8月31日,AMQP发布了1.0版本。1.0版本中去掉了exchange和binding,使用queue和link来代替。

 

先到这里,下次继续。

分享到:
评论

相关推荐

    尚硅谷_消息中间件RabbitMQ_课件.docx

    ### 消息中间件RabbitMQ相关知识点 #### 一、消息队列(MQ)概述 **1.1 MQ的概念** MQ(Message Queue),即消息队列,是一种用于实现进程间通信的技术。它通过在消息的生产者和消费者之间提供一个先进先出(FIFO...

    消息中间件在分布式系统中的作用介绍

    消息中间件(Middleware)是分布式系统架构中的关键组件之一,它是一种软件基础设施,专注于在分布式系统之间发送和接收消息。消息中间件(MOM,Message-oriented middleware)可以提供高效可靠的消息传递机制,实现...

    RabbitMQ实战 高效部署分布式消息队列 带目录 高清版 PDF

    《RabbitMQ实战:高效部署分布式消息队列》是一本深度解析RabbitMQ技术的书籍,旨在帮助读者理解和掌握如何在实际项目中高效地运用这一强大的消息中间件。书中不仅涵盖了RabbitMQ的基础知识,还深入探讨了其在分布式...

    尚硅谷_消息中间件RabbitMQ_课件.rar

    【标题】"尚硅谷_消息中间件RabbitMQ_课件.rar" 提供的是一份关于消息中间件RabbitMQ的教程资料,专为Java开发人员设计,详细讲解了RabbitMQ在Java环境中的应用。 【描述】"消息中间件rabbitMq笔记,很详细,适用于...

    分布式消息中间件实践_倪炜(著)

    首先,RabbitMQ是一种基于AMQP(Advanced Message Queuing Protocol)协议的消息中间件,广泛应用于各种分布式系统中。它提供了高可用性、可扩展性和灵活性,支持多种语言的客户端。RabbitMQ的工作模式主要包括直接...

    分布式GO项目,使用RabbitMQ.

    综上所述,一个使用RabbitMQ的分布式Go项目涵盖了Go语言编程、分布式系统设计、消息队列中间件应用等多个领域的知识。通过深入理解和实践这些技术,我们可以构建出高效、稳定、可扩展的分布式系统。

    RabbitMQ实战 高效部署分布式消息队列 PDF下载

    RabbitMQ作为开源的消息代理和队列服务器,广泛应用于分布式系统中的异步处理、解耦和扩展性构建。以下是对RabbitMQ及其相关知识点的详细阐述: 1. **消息队列基础**:消息队列是一种用于在应用程序之间传递消息的...

    分布式Redis+消息中间件实现高并发(秒杀方案)源码.zip

    分布式系统在处理高并发场景时,常常面临巨大的挑战,如数据一致性、系统稳定性和性能优化等问题。本项目“分布式Redis+消息中间件实现高并发(秒杀方案)”旨在提供一种解决方案,尤其针对电商行业的秒杀活动。在这...

    RabbitMQ高效部署分布式消息队列实战篇

    在分布式系统中,消息队列作为不同服务之间的通信桥梁,可以有效地缓解服务间的同步压力,实现负载均衡,提高系统的整体吞吐量。此外,它还能实现服务解耦,降低服务间的依赖性,使得各服务能够独立开发和更新,增强...

    20.消息中间件之RabbitMQ入门讲解

    RabbitMQ是一款开源的消息中间件,它基于AMQP(Advanced Message Queuing Protocol)协议,用于在分布式系统中高效地传递消息。在这个“20.消息中间件之RabbitMQ入门讲解”的主题中,我们将深入理解RabbitMQ的核心...

    《分布式消息中间件实践 》_倪炜.zip

    分布式消息中间件是现代软件架构中的重要组成部分,它在大型分布式系统中起到连接各个服务、解耦组件、处理异步通信的关键作用。本书《分布式消息中间件实践》由倪炜撰写,旨在深入探讨这一领域的实践经验和理论知识...

    学成在线-第5天-讲义-消息中间件RabbitMQ v1.21

    消息中间件RabbitMQ是一种广泛应用于分布式系统中的组件,用于在不同服务之间传递消息,从而解耦系统,提高可扩展性和容错性。在学成在线的第5天课程中,我们关注的是如何利用RabbitMQ实现一个具体的业务流程,即...

    RabbitMQ实战高效部署分布式消息队列.pdf+rabbitmq学习手册.pdf

    RabbitMQ是一款开源的消息中间件,它基于AMQP(Advanced Message Queuing Protocol)协议实现,广泛应用于分布式系统中,提供高可靠性的消息传递服务。在本文中,我们将深入探讨RabbitMQ的核心概念、功能特性、部署...

    RabbitMQ消息中间件技术精讲

    ### RabbitMQ消息中间件技术精讲 #### 一、RabbitMQ简介 RabbitMQ是一款在IT领域广泛应用的消息中间件,它基于AMQP(Advanced Message Queuing Protocol)协议开发而成,能够实现高效、可靠的数据传输服务。...

    RabbitMQ消息中间件视频教程

    RabbitMQ具有高可用性、灵活的路由机制、可靠的持久化特性以及良好的扩展性,能够满足大规模分布式系统中的消息传输需求。 #### 二、消息中间件的重要性 在现代软件架构设计中,消息中间件扮演着极其重要的角色。...

    20.消息中间件之RabbitMQ入门讲解(更新)

    RabbitMQ是一款开源的消息中间件,它基于AMQP(Advanced Message Queuing Protocol)协议,用于在分布式系统中高效地路由和传递消息。本教程将带你走进RabbitMQ的世界,了解其基本概念、安装过程,以及如何创建消息...

    RabbitMQ消息中间件技术精讲.txt

    ### RabbitMQ消息中间件技术精讲 #### 一、RabbitMQ简介 ...无论是简单的消息传递还是复杂的分布式系统架构,RabbitMQ都能够提供强大的支持。开发者可以根据实际需求灵活运用其提供的各种功能,构建出高效可靠的系统。

    消息中间件在分布式系统中的作用介绍与实例

    消息中间件在分布式系统中的应用已经变得越来越普遍,它在构建高效、可靠和可扩展的系统中扮演着至关重要的角色。本文将深入探讨消息中间件的功能、重要性以及实际应用场景,帮助读者理解如何利用这种技术优化分布式...

Global site tag (gtag.js) - Google Analytics