青云博客 记录、分享

归档

2024 年 04 月

RocketMQ是采用分布式存储的方式来存储消息的。每个Broker的存储结构主要包括:CommitLog、ConsumeQueue和IndexFile。 CommitLog是消息存储的物理文件,存储了所有消息的主题、标签、时间戳等基本信息和消息体。每个Broker上的CommitLog被当前机器上
在RocketMQ中,如果未消费的消息过多,会给集群带来非常多的问题: 消息堆积:消息在Broker端不断堆积,可能会导致Broker的存储压力过大,影响整个系统的性能和稳定性。 死信队列:RocketMQ中的Broker会在一定时间内无法被消费的消息转换到死信队列中。如果消息持续堆积,死信队列的空
RocketMQ可以通过以下优化措施来处理大量的消息: 增加Broker数量:增加Broker数量可以使得消息在消费端的负载均衡更加灵活,同时可以提高系统的容错性和可用性。 消息生产者的异步发送: 消息生产者可以使用异步发送方式,以降低发送消息的延迟,提高发送吞吐量。异步发送允许生产者在等待确认之前
RocketMQ的延迟消息实现是通过在消息发送时设置一个延迟级别,然后消息会被存储到DelayMessageService中,等待达到指定的延迟时间后再被重新推送到Broker的commitLog服务中。 具体流程如下: Producer 将消息投递到Broker的commitLog服务。
RocketMQ的集群架构包括四个主要角色:Name Server集群、Broker主从集群、Producer和Consumer客户端。 Name Server集群是RocketMQ的一种轻量级的服务节点,负责注册和管理Broker的服务地址,提供服务的注册和发现功能。每个Broker节点都要跟所有
RocketMQ的Broker有三种集群模式: 单Master模式:只有一个Master节点,其他都是Slave节点。Master节点负责响应客户端的请求并存储消息,Slave节点只同步Master节点的消息,也会响应部分客户端的读请求。这种模式的优点是简单易部署,但是存在单点故障的问题,如果Mas
缓存双写不一致是指在使用缓存的架构中,当数据更新时,由于缓存和数据库的写操作没有同步进行,导致数据在缓存和数据库之间出现不一致的情况。 以下是对缓存双写不一致的一般理解: 更新顺序问题:当应用程序更新了数据库中的数据,但在更新缓存之前发生了错误或异常,导致缓存中的数据仍然是旧值。这种情况下,数据库中
Redis哨兵机制详解 一、核心定义 Redis Sentinel(哨兵)是Redis官方提供的高可用性解决方案,主要用于实现: 主从集群的自动故障转移 持续监控主从节点状态 服务发现与配置更新 二、核心功能 1. 监控(Monitoring) 每秒向所有节点发送PING命令 通过主观下线和客观下线
在Redis集群中,由于采用了主从复制模型的异步复制机制,写操作有一定的丢失风险。 当客户端向主节点发送写操作时,主节点会立即返回成功响应,而不等待所有从节点执行复制。如果主节点在执行完写操作后出现故障或网络问题,导致从节点无法及时接收到复制操作,那么这些未复制的写操作将会丢失。 为了减少写操作丢失
Redis 集群通过数据分片和主从复制实现了横向扩展和高可用性。它将数据划分为 16384 个哈希槽,并将这些槽均匀地分配到多个节点上。每个节点负责处理一部分槽的数据,实现了数据的分散存储和负载均衡。 在集群中,每个哈希槽有一个主节点和多个从节点。
上一页 下一页