武威 网站建设,富锦建设局网站,yum wordpress php扩展,网页qq网址MQ
MQ#xff1a;MessageQueue#xff0c;消息队列。这东西分两个部分来理解#xff1a;
队列#xff0c;是一种FIFO 先进先出的数据结构。
消息#xff1a;在不同应用程序之间传递的数据。将消息以队列的形式存储起来#xff0c;并且在不同的应用程序之间进行传递MessageQueue消息队列。这东西分两个部分来理解
队列是一种FIFO 先进先出的数据结构。
消息在不同应用程序之间传递的数据。将消息以队列的形式存储起来并且在不同的应用程序之间进行传递这就成了MessageQueue。
MQ的优缺点
系统可用性降低 一旦MQ宕机对业务会产生影响。这就需要考虑如何保证MQ的高可用。 系统复杂度提高 会变为异步调用数据的链路就会变得更复杂比如消息如何高效存储、如何定期维护、如何监控、如何溯源等等。 消息安全性问题 比如如何快速保存海量消息如何保证消息不丢失不被重复处理怎么保证消息的顺序性如何保证消息事务完整等问题
几大主流MQ产品特点比较
这里的优缺点并不是绝对的因为每个产品都在不管演进。比如Kafka现在基本可以做到数据不丢失。RabbitMQ的Stream队列就是模拟Kafka的实现机制消息吞吐量也提升了非常多。另外也还有很多新的MQ产品体现了更强大的竞争力比如Pulsar。
优点缺点使用场景kafka吞吐量非常大性能非常好集群高可用。会丢数据。功能单一。日志分析大数据采集RabbitMQ消息可靠性高功能全面吞吐量比较低消息积累会影响性能erlang语言不好定制小规模场景RocketMQ高吞吐高性能高可用功能全面开源版功能不如云上版官方文档简单客户端只支持java几乎全场景
关于RabbitMQ
RabbitMQ的历史可以追溯到2006年是一个非常老牌的MQ产品使用非常广泛。官网地址 https://www.rabbitmq.com/ 。
安装RabbitMQ服务
#Docker安装docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.11-management
RabbitMQ中的核心概念总结
Producer -------- Connection ---------》 RabbitMQ Server 《-------- Connection --------- Consumer
RabbitMQ Server的服务器称为Broker RabbitMQ集群中划分出多个virtual host 客户端与RabbitMQ进行交互首先就需要建立一个TPC连接这个连接就是Connection。 一旦客户端与RabbitMQ建立了连接就会分配一个AMQP信道 Channel。RabbitMQ为了减少性能开销也会在一个Connection中建立多个Channel。 消息发送到RabbitMQ中后会首先进入一个交换机然后由交换机负责将数据转发到不同的队列中。 交换机多用来与生产者打交道。生产者发送的消息通过Exchange交换机分配到各个不同的Queue队列上而对于消息消费者来说通常只需要关注自己感兴趣的队列就可以了。 队列 Queue Queue是实际保存数据的最小单位Queue不需要Exchange也可以独立工作增加Exchange实现更复杂的消息分配策略。