2022年6月29日

Redis对象编码(encoding)之字符串对象详解

摘要: 上篇文章讲述了Redis对象的属性https://www.cnblogs.com/Joe-Go/p/16420643.html,这篇文章就是对上篇文章中Redis对象属性encoding(编码)之字符串对象进行详细的解释 字符串对象 字符串的编码可以是int、embstr、raw; 如果一个字符串对 阅读全文

posted @ 2022-06-29 17:51 AoTuDeMan 阅读(381) 评论(0) 推荐(0) 编辑

Redis对象属性详解

摘要: Redis的对象结构如下: 1 typedef struct redisObject{ 2 3 //类型 4 unsigned type:4; 5 6 //编码 7 unsigned encoding:4; 8 9 //指向底层数据的指针 10 void *ptr; 11 12 //对象引用计数 1 阅读全文

posted @ 2022-06-29 14:49 AoTuDeMan 阅读(237) 评论(0) 推荐(0) 编辑

2019年6月3日

镜像队列

摘要: 如果RabbitMQ集群中只有一个Broker节点,那么该节点的失效将导致整体服务的临时性不可用,并且也可能会导致消息的丢失。可以将所有的消息都设置为持久化,并且对应的队列也可以将durable属性设置为true,但是这样仍然无法避免由于缓存的问题:因为在消息发送后和被写入磁盘并执行刷盘动作之间存在 阅读全文

posted @ 2019-06-03 20:31 AoTuDeMan 阅读(273) 评论(0) 推荐(0) 编辑

2019年5月30日

流控

摘要: RabbitMQ可以对内存和磁盘的使用量设置阈值,当到达阈值后,生产者将被阻塞,直到对应项恢复正常。除了这两个阈值,从2.8.0版本开始,RabbitMQ还引入了流控(Flow Control)机制来确保稳定性。流控机制是用来避免消息的发送频率过快而导致服务器难以支撑的情形。内存和磁盘告警相当于全局 阅读全文

posted @ 2019-05-30 19:36 AoTuDeMan 阅读(1067) 评论(0) 推荐(0) 编辑

2019年5月29日

内存及磁盘告警

摘要: 当内存使用超过配置的阈值或者磁盘剩余空间低于配置的阈值时,RabbitMQ都会暂时阻塞(block)客户端的连接(Connection)并停止接收从客户端发来的消息,以此避免服务崩溃。与此同时,客户端与服务端的心跳检测也会失效。可以通过rabbitmqctl list_connections命令或者 阅读全文

posted @ 2019-05-29 20:42 AoTuDeMan 阅读(729) 评论(0) 推荐(0) 编辑

RabbitMQ消息的存储机制以及队列的结构

摘要: 消息的存储机制 不管是持久化的消息还是非持久化的消息都可以被写入到磁盘。持久化的消息在到达队列时就被写入到磁盘,并且如果可以,持久化的消息也会在内存中保存一个备份,这样就可以提高一定的性能,当内存吃紧的时候会从内存中清除。非持久化的消息一般只保存在内存中,在内存吃紧的时候会被换入到磁盘中,以节省内存 阅读全文

posted @ 2019-05-29 18:45 AoTuDeMan 阅读(1998) 评论(0) 推荐(1) 编辑

2019年5月24日

RabbitMQ生产者发送消息确认

摘要: 在使用RabbitMQ的时候,可以通过消息的持久化操作来解决因为服务器的异常崩溃而导致的消息丢失,除此之外,我们还会遇到一个问题,当消息的生产者将消息发送出去以后,消息到底有没有到达服务器呢?如果不进行特殊的配置,默认情况下发送消息的操作是不会返回任何消息给生产者的,也就是默认情况下是不知道消息有没 阅读全文

posted @ 2019-05-24 08:19 AoTuDeMan 阅读(2547) 评论(0) 推荐(1) 编辑

2019年5月22日

RabbitMQ消息和队列的TTL以及死信队列和延迟队列

摘要: TTL:Time To Live的简称,即过期时间。RabbitMQ可以对消息和队列设置TTL。 设置消息的TTL 目前有两种方法设置消息的TTL,第一种方法是通过队列的属性设置,队列中的所有消息都有相同的过期时间。第二种方法是对消息本身进行单独设置,每条消息的TTL可以不同。如果两种方法一起使用那 阅读全文

posted @ 2019-05-22 19:12 AoTuDeMan 阅读(2997) 评论(0) 推荐(0) 编辑

2019年5月21日

RabbitMQ提升消息可靠性的方法

摘要: mandatory参数 当mandatory参数设置为true的时候,交换器无法根据自身的类型和路由键找到一个符合条件的队列,那么RabbitMQ会调用Basic.Return命令将消息返回给生产者。当mandatory参数设置为false时,出现上述情形,则消息直接被丢弃。 生产者是如何获取到没有 阅读全文

posted @ 2019-05-21 08:18 AoTuDeMan 阅读(266) 评论(0) 推荐(0) 编辑

2019年5月14日

RabbitMQ入门

摘要: 概念介绍 RabbitMQ整体上可以看做是一个生产者和消费者模型,主要负责接收、存储和转发消息。 生产者和消费者 Producer:生产者,就是投递消息的一方。 生产者创建消息,然后发布到RabbitMQ中,消息一般可以包含两个部分:消息体和标签(Label)。消息体也可以称之为payload,在实 阅读全文

posted @ 2019-05-14 20:00 AoTuDeMan 阅读(160) 评论(0) 推荐(0) 编辑

导航