自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 RocketMQ-总结

当broker启动时,会轮循所有的nameserver,并建立一个长连接,向nameserver注册自身的信息,nameserver会维护一个broker列表,存放broker的信息。生产者端:使用confirm模式,生产者发送消息给broker后,broker需要返回一个ACK消息,如果producer没有收到该ACK消息,则认为消息发送失败,重新发送。消费者消费broker中的消息,由于网络波动,broker没有收到ACK消息,会重新将该消息发送给消费者消费,造成消息重复。通过幂等令牌做唯一性处理。

2024-02-25 21:47:32 1827

原创 RocketMQ之应用

当一条消息初次消费失败,消息队列会自动进行消费重试;达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息,此时,消息队列不会立刻将消息丢弃,而是将其发送到该消费者对应的特殊队列中。这个队列就是死信队列(Dead-Letter Queue,DLQ),而其中的消息 则称为死信消息(Dead-Letter Message,DLM)。死信队列是用于处理无法被正常消费的消息的。

2024-02-25 21:43:09 1150

原创 RocketMQ之工作原理

Rebalance即再均衡,指的是,将一个Topic下的多个Queue在同一个Consumer Group中的多个Consumer间进行重新分配的过程。Rebalance机制的本意是为了提升消息的并行消费能力。例如,一个Topic下 5 个队列,在只有 1 个消费者的情况下,这个消费者将负责消费这 5 个队列的消息。如果此时我们增加一个消费者,那么就可以给其中一个消费者分配 2 个队列,给另一个分配 3 个队列,从而提升消息的并行消费能力。

2024-02-25 21:21:21 7984 1

原创 RocketMQ之集群搭建理论

所谓同步双写,指的是消息写入master成功后,master会等待slave同步数据成功后才向producer返回成功ACK,即master与slave都要写入成功后才会返回成功ACK,也即双写。master与slave的关系是主备关系,即master负责处理消息的读写请求,而slave仅负责消息的备份与master宕机后的角色切换。Slave从Master同步的延迟越短,其可能丢失的消息就越少对于Master的RAID磁盘阵列,若使用的也是异步复制策略,同样也存在延迟问题,同样也可能会丢失消息。

2024-02-25 21:07:36 684

原创 RocketMQ之系统架构

NameServer是一个Broker与Topic路由的注册中心,支持Broker的动态注册与发现。RocketMQ的思想来自于Kafka,而Kafka是依赖了Zookeeper的。所以,在RocketMQ的早期版本,即在MetaQ v1.0与v2.0版本中,也是依赖于Zookeeper的。从MetaQ v3.0,即RocketMQ开始去掉了Zookeeper依赖,使用了自己的NameServer。Broker管理:接受Broker集群的注册信息并且保存下来作为路由信息的基本数据;

2024-02-25 21:04:04 1083

原创 RocketMQ之基本概念

消息是指,消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题。

2024-02-25 20:57:13 261

原创 MySql之事务

MVCC(Multi-Version Concurrency Control ,多版本并发控制)指的就是在使用READ COMMITTD、REPEATABLE READ这两种隔离级别的事务在执行普通的SEELCT操作时访问记录的版本链的过程。可以使不同事务的读-写、写-读操作并发执行,从而提升系统性能。

2024-01-10 20:39:19 845 2

原创 MySql之索引分类

设定为主键后数据库会自动建立索引,innodb为聚簇索引。即一个索引只包含单个列,一个表可以有多个单列索引。索引列的值必须唯一,但允许有空值。即一个索引包含多个列。

2024-01-10 20:33:14 376

原创 MySql之索引实现

在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,本文主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。

2024-01-10 20:30:23 855

原创 MySql之索引

尽管 B+树找到一个记录所需的比较次数要比 B-树多,但是一次磁盘访问的时间相当于成百上千次内存比较的时间,因此实际中B+树的性能可能还会好些,而且 B+树的叶子节点使用指针连接在一起,方便顺序遍历(例如查看一个目录下的所有文件,一个表中的所有记录等),这也是很多数据库和文件系统使用 B+树的缘故。为了读取这个扇区的数据,需要将磁头放到这个扇区上方,为了实现这一点,磁头需要移动对准相应磁道,这个过程叫做寻道,所耗费时间叫做寻道时间,然后磁盘旋转将目标扇区旋转到磁头下,这个过程耗费的时间叫做旋转时间。

2024-01-10 20:26:29 848

原创 MySql之逻辑架构

一、预编译的SQL语句处理 预编译语句PreparedStatement 是java.sql中的一个接口,它是Statement的子接口。mysql 客户端通过协议与 mysql 服务器建连接,发送查询语句,先检查查询缓存,如果命中,直接返回结果,否则进行语句解析,也就是说,在解析查询之前,服务器会先访问查询缓存(query cache)——它存储 SELECT 语句以及相应的查询结果集。存储引擎层,存储引擎真正的负责了 MySQL 中数据的存储和提取,服务器通过 API 与存储引擎进行通信。

2024-01-10 20:15:57 399 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除