zoukankan      html  css  js  c++  java
  • RabbitMQ

    RabbitMQ是基于AMQP协议的,通过使用通用协议就可以做到在不同语言之间传递。

    AMQP协议

    核心概念

    1. server:又称broker,接受客户端连接,实现AMQP实体服务。

    2. connection:连接和具体broker网络连接。
    3. channel:网络信道,几乎所有操作都在channel中进行,channel是消息读写的通道。客户端可以建立多个channel,每个channel表示一个会话任务。
    4. message:消息,服务器和应用程序之间传递的数据,由properties和body组成。properties可以对消息进行修饰,比如消息的优先级,延迟等高级特性;body是消息实体内容。
    5. Virtual host:虚拟主机,用于逻辑隔离,最上层消息的路由。一个Virtual host可以若干个Exchange和Queue,同一个Virtual host不能有同名的Exchange或Queue。
    6. Exchange:交换机,接受消息,根据路由键转发消息到绑定的队列上。
    7. banding:Exchange和Queue之间的虚拟连接,binding中可以包括routing key
    8. routing key:一个路由规则,虚拟机根据他来确定如何路由 一条消息。
    9. Queue:消息队列,用来存放消息的队列。

    rabbitMQ集群模式

    1. 主备模式:实现rabbitMQ高可用集群,一般在并发量和数据不大的情况下,这种模式好用简单。又称warren模式。(区别于主从模式,主从模式主节点提供写操作,从节点提供读操作,主备模式从节点不提供任何读写操作,只做备份)如果主节点宕机备份从节点会自动切换成主节点,提供服务。

    2. 集群模式:经典方式就是Mirror模式,保证100%数据不丢失,实现起来也是比较简单。

    • 镜像队列,是rabbitMQ数据高可用的解决方案,主要是实现数据同步,一般来说是由2-3节点实现数据同步,(对于100%消息可靠性解决方案一般是3个节点)

            3.多活模式:这种模式也是实现异地数据复制的主流模式,因为shovel模式配置相对复杂,所以一般来说实现异地集群都是使用这种双活,多活的模式,这种模式需要依赖rabbitMQ的federation插件,可以实现持续可靠的AMQP数据。

    rabbitMQ部署架构采用双中心模式(多中心)在两套(或多套)数据中心个部署一套rabbitMQ集群,各中心的rabbitMQ服务需要为提供正常的消息业务外,中心之间还需要实现部分队列消息共享

  • 相关阅读:
    结对作业(1)--疫情统计可视化(原型设计)
    软工实践寒假作业(2/2)疫情统计程序
    最长回文
    吉哥系列故事——完美队形II ——Manacher算法
    友情链接
    代码互改——第二次个人编程作业
    汉字编程——第一次个人编程作业
    谈谈自己
    OO第一次博客
    OO第一单元作业总结
  • 原文地址:https://www.cnblogs.com/KL2016/p/14888025.html
Copyright © 2011-2022 走看看