zoukankan      html  css  js  c++  java
  • RabbitMQ 消息中间件(二)

    RabbiMQ简介
    RabbiMQ是Erlang开发的,集群非常方便,因为Erlang天生就是分布式语言,但其本身并不支持负载均衡,支持高并发,支持可扩展。支持AJAX,持久化,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。Ajax = 异步 JavaScript 和 XML

    2、RabbitMQ 特点
    可靠性

    扩展性

    高可用性

    多种协议

    多语言客户端

    管理界面

    插件机制

    3、什么是消息队列
    MQ 全称为Message Queue, 消息队列。是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。

    消息传递指的是程序之间通过在消息中发送数据进行通信。

    RabbiMQ模式
    注意:RabbitMQ模式大概分为以下三种:

    (1)单机模式。

    (2)普通模式(默认的集群模式)。

    (3) 镜像模式(把需要的队列做成镜像队列,存在于多个节点,属于RabbiMQ的HA方案,在对业务可靠性要求较高的场合中比较适合)。要实现镜像模式,需要先搭建出普通集群模式,在这个模式的基础上再配置镜像模式以实现高可用。

    了解集群中的基本概念:
    RabbitMQ的集群节点包括内存节点、磁盘节点。顾名思义内存节点就是将所有数据放在内存,磁盘节点将数据放在磁盘。

    一个rabbitmq集 群中可以共享 user,vhost,queue,exchange等,所有的数据和状态都是必须在所有节点上复制。

    ConnectionFactory(连接管理器):应用程序与Rabbit之间建立连接的管理器,程序代码中使用;
    Channel(信道):消息推送使用的通道;
    Exchange(交换器):用于接受、分配消息;
    Queue(队列):用于存储生产者的消息;
    Broker:简单来说就是消息队列服务器实体
    vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离.
    producer:消息生产者,就是投递消息的程序。
    consumer:消息消费者,就是接受消息的程序。
    1571320020040

    面试注意:集群中有两种节点

    1 内存节点:只保存状态到内存(持久的queue的持久内容将被保存到disk)

    2 磁盘节点:保存状态到内存和磁盘。---推荐

    内存节点虽然不写入磁盘,但是它执行比磁盘节点要好。集群中,只需要一个磁盘节点来保存状态 就足够了

    如果集群中只有内存节点,那么不能停止它们,否则所有的状态,消息等都会丢失。

  • 相关阅读:
    Java正式day_06——数组排序
    别只知道策略模式+简单工厂,试试更香的策略模式+抽象工厂!
    图解连接阿里云(一)创建阿里云物联网平台产品和设备,使用MQTT.fx快速体验
    嵌入式交叉编译GDB,结合vscode图形化调试C和C++代码 coredump定位段错误
    内核链表之list_for_eacy_entry手绘图解
    makefile实验三 理解make工作的基本原则
    玩转Libmodbus(一) 搭建开发环境
    RT-Thread的C语言多态风格展示
    C++函数默认参数 详解
    杂类-边学边记
  • 原文地址:https://www.cnblogs.com/chen991126/p/14136677.html
Copyright © 2011-2022 走看看