中间件/RabbitMQ
Anbang713
这个作者很懒,什么都没留下…
展开
-
RabbitMQ:集群
单机版的RabbitMQ服务器集群模式,不仅要面临服务器因为各种原因导致崩溃无法使用的情况,其吞吐量也是有限的。购买昂贵的服务器来增强单机RabbitMQ服务的性能显得捉襟见肘时,搭建一个RabbitMQ集群才是解决实际问题的关键。RabbitMQ集群允许消费者和生产者在RabbitMQ单个节点崩溃的情况下继续运行,它可以通过添加更多的节点来线性地扩展消息通信的吞吐量。当其中一个RabbitMQ故障时,客户端能够重新连接到集群中的任何其它节点并继续生产或者消费。不过RabbitMQ集群不能保证消息的万无原创 2020-07-20 20:57:03 · 1104 阅读 · 0 评论 -
RabbitMQ:生产者确认
在使用RabbitMQ的时候,可以通过消息持久化操作来解决因为服务器的异常崩溃而导致的消息丢失。除此之外,我们还会遇到一个问题,当消息的生产者将消息发送出去之后,消息到底有没有正确地到达服务器呢?如果不进行特殊配置,默认情况下发送消息的操作是不会返回任何信息给生产者的,也就是默认情况下生产者是不知道消息有没有正确地到达服务器。如果在消息到达服务器之前已经丢失,持久化操作也解决不了这个问题,因为消息根本没有到达服务器,怎么持久化?RabbitMQ针对这个问题,提供了两种解决方案:通过事务机制实现。通过生原创 2020-07-19 09:22:26 · 696 阅读 · 0 评论 -
RabbitMQ:过期时间TTL和死信队列、延迟队列
上一篇《RabbitMQ:消息何去何从》我们说到当一条消息无法被正确路由到队列时,消息可能被返回给生产者、也可能直接丢弃或者使用备份交换器将消息存储起来。今天说一下RabbitMQ另外三个重要的特性和功能。1. 过期时间TTLTTL:Time to Live的简称,即过期时间。RabbitMQ可以对消息和队列设置TTL。1.1 设置消息的TTL目前有两种方法可以设置消息的TTL,第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间;第二种方法是对消息本身进行单独设置,每条消息的TTL可以不原创 2020-07-18 20:05:14 · 537 阅读 · 0 评论 -
RabbitMQ:消息何去何从
在正常情况下,生产者产生并发送一条消息然后被交换器正确路由到某个队列中。但是如果一条消息不能被正确路由到某个队列时,那么这条消息该何去何从呢?RabbitMQ提供以下几个处理方案:(1)将消息返回给生产者;(2)直接将消息丢失;(3)使用备份交换器将未能被路由的消息存储起来。1. 返回给生产者void basicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, BasicPropert原创 2020-07-12 09:27:33 · 300 阅读 · 0 评论 -
RabbitMQ:客户端开发api介绍
RabbitMQ环境有了,核心概念也了解完了,接下来我们有必要了解一下客户端开发api。1. 交换器1.1 声明交换器exchangeDeclare有很多个重载方法,这些重载方法都是有下面这个方法中缺省的某些参数构成。Exchange.DeclareOk exchangeDeclare(String exchange, String type,原创 2020-07-11 09:36:02 · 312 阅读 · 0 评论 -
RabbitMQ:快速入门
和RocketMQ一样,RabbitMQ作为消息中间件,主要负责接收、存储和转发消息。同时RabbitMQ也有生产者和消费者的概念,我们先来看看其整体模型架构。如下图:1. 核心概念介绍1.1 生产者和消费者Producer:生产者,投递消息的一方。通常来说,一条消息可以包含2个部分:消息体和标签。消息体一般是一个带有业务逻辑结构的数据,而标签则用来描述这条消息,比如一个交换机的名称和一个路由键。Consumer:消费者,接收消息的一方。消费者连接到RabbitMQ服务器,并订阅到队列原创 2020-07-09 20:42:29 · 256 阅读 · 0 评论 -
RabbitMQ:安装
作为《学习RabbitMQ,这里没有废话》系列的开篇,理论上按照我个人的风格是要介绍一下什么是消息,什么是消息中间件,然后再过渡到本篇《RabbitMQ:安装》。但之前在《学习RocketMQ,这里没有废话》系列的开篇《RocketMQ:消息中间件简介》已经做过介绍,所以这里就不多说了,下面直接进入今天的主题。RabbitMQ是当前最主流的消息中间件之一。RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Java、JMS、C、PHP等,支持AJAX原创 2020-07-08 20:37:01 · 511 阅读 · 0 评论