RabbitMQ与Erlang的安装及其介绍

消息队列

  1. 所能承受的并发远高于 数据库
  2. RabbitMQ消息传递模型中的核心思想是生产者从不将任何信息直接发送到队列,任何模式都是直接发送给交换机,再经交换机交给消息队列,其实简单的工作模式也是.

主流MQ:RabbitMQ,RocketMQ,ActiveMQ,Kafka

  • ActiveMQ:最早,处理并发量较低.
  • Kafka:并发量最高,性能高,速度快,但数据不严谨,漏发重复发消息
  • RocketMQ:阿里自研开发,并是开源的,速度快,并修复了Kafka前期的不严谨,但部分功能是收费的
  • RabbitMQ:整体的并发及处理速度不如KafkaRocketMQ,但比ActiveMQ强,基本上不是太多的并发它都能扛得住,真真的开源的,插件较多
MQ消息队列 → 取代多线程(自理解)

进程间通信或统一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常来自用户.消息队列提供了一步的通信协议,每一个贮列中的记录包含详细说明的数据,包含发生的时间,输入设备的种类,以及特定的输入参数,也就是说:消息的发送者和接收者不需要同时与消息队列交互,消息会保存在队列中,直到接受者取回.

实现:
  1. 消息队列常常保存在链表结构中,拥有权限的进程可以向消息队列中写入或读取消息,

  2. 目前消息队列有很多开源的实现:括 JBoss MessagingJORAMApache ,ActiveMQSun Open Message QueueIBM MQApache QpidHTTPSQS

  3. 当前使用较多的消息队列有 RabbitMQRocketMQ(阿里自研) 、 ActiveMQKafkaZeroMQMetaMq等,而部分数据库如 RedisMysql以及 phxsql 也可实现消息队列的功能。

    image-20201012170905578

特点:

MQ是消费者-生产者模型的一个典型代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息而另一端则可以读取或者订阅队列中的消息。MQJMS类似,但不同的是JMSSUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品

注意:

  • AMQP即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。
  • JMS ,Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。 Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。常见的消息队列,大部分都实现了JMS API,如ActiveMQRedis 以及 RabbitMQ
优点:

应用耦合,异步处理,流量削峰

  • 解耦

    传统模式

    image-20201012172139560

    中间接模式

    image-20201012172340510

  • 异步

    传统模式

    image-20201012172752337

    中间件模式

    image-20201012172913310

  • 削峰

    传统模式

    image-20201012173015997

    中间件模式

    image-20201012173632724

缺点:

系统可用性降低、系统复杂性增加

使用场景

消息队列,是分布式系统中重要的组件,其通用的使用场景可以简单的描述为:当不需要立即获得结果,但是并发量又需要进行控制的时候,差不多就是需要使用消息队列的时候,在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量

为什么使用RabbitMQ

AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值