![](https://img-blog.csdnimg.cn/direct/13feb1988ff4498f87583c718f056660.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据搜索专题
文章平均质量分 88
数据搜索专题
蓝胖子的编程梦
多年互联网大厂开发经验,深耕后端领域,擅长golang、云原生技术栈。对性能优化和服务监控方向颇有心得,对分布式链路追踪,故障诊断,实时数据分析,监控告警平台建设,性能优化及架构设计有深入研究
展开
-
MYSQL 同步到ES 如何设计架构保持一致性
最后,我来总结下,采用canal去做MySQL 到ES的数据同步,我们的确是可以做到高可靠性的,但是要注意的canal的消息消费是有可能出现重复消息的,不过由于目前我们部门没有对消息进行统计的需求,仅仅是将数据进行更新或者插入,存在即更新,没有即插入,所以是幂等,可以不用太过关注。原创 2024-03-21 15:56:29 · 417 阅读 · 0 评论 -
为什么延迟删除可以保证MYSQL 与redis的一致性?
看过很多保持MYSQL 与redis保持一致性的文章都提到了延迟删除,其实脱离任何业务场景的设计都是不切实际的,所以我会本着一个通用的读写场景去分析。原创 2024-03-20 11:43:11 · 392 阅读 · 0 评论 -
Elasticsearch 主副分片切换过程中对业务写入有影响吗
🍊🍉🍋 先说下结论,只要集群中的工作节点过半,有候选的master节点,挂掉的节点中不同时包含索引的主分片和副分片,那么ES是可以做到让业务无感知的进行主副分片切换的。蓝胖子会先讲解下ES集群写入文档的原理,并对异常情况进行分析,最后来模拟集群写入过程中节点宕机的情况来对这个问题展开讨论。原创 2024-03-16 00:43:10 · 885 阅读 · 0 评论 -
MYSQL 是如何保证binlog 和redo log同时提交的?
redo log是innodb引擎层产生的日志, MYSQL从磁盘读取数据的单位是一页,当修改页中某条数据时,该行所在的数据页就变成了脏页,由于脏页并不会立马刷新到磁盘,所以redo log会记录下数据页进行了哪些变动,用于服务崩溃时的数据恢复。redo log是固定大小的,由多个文件组成一个环形的结构,原创 2024-03-14 13:01:00 · 804 阅读 · 0 评论 -
MYSQL 主从不一致的原因分析
数据库作为存储数据的组件,数据的一致性一定是要保证的前提,今天给出两个场景来分析数据不一致的原因。原创 2024-03-13 15:20:05 · 417 阅读 · 0 评论 -
Elasticsearch 如何保证写入过程中不丢失数据的
在本文开始前,首先明白一个点,平时我们说的组件数据不丢失究竟是在指什么,如果你往ES写入数据,ES返回给你写入错误,这个不算数据丢失。如果你往ES写入数据,ES返回给你成功,但是后续因为ES节点重启或宕机导致写入的数据不见了,这个才叫数据丢失。4, 在文件系统缓存中的segment总归还是要写入磁盘,默认每30分钟,或者当translog的日志量达到某个量级时,segment会进行落盘,同时删掉translog日志。1,写入时,ES会首先往一块内存缓存中写入数据,这快内存缓存在ES中叫。原创 2024-03-12 18:23:30 · 602 阅读 · 0 评论 -
如何避免MYSQL主从延迟带来的读写问题?
GTID 的全称是,全局事务 ID,是一个事务在提交的时候生成的,是这个事务的唯一标识。MYSQL开启 GTID 模式的方式是 在启动一个 MySQL 实例的时候,加上参数和。每个事务是和GTID 值一一对应的,每个MYSQL实例会维护一个GTID 集合,来表示实例执行过的事务。在slave节点上,通过可以看到 GTID集合,如下图所示,,表示这对主备关系使用了 GTID 协议。,是备库收到的所有日志的 GTID 集合。,是备库所有已经执行完成的 GTID 集合。原创 2024-03-08 17:34:44 · 717 阅读 · 1 评论 -
疯一样的向自己发问 - 剖析lsm 索引原理
lsm 更像是一种设计索引的思想。它把数据分为两个部分,一部分放在内存里,一部分是存放在磁盘上,内存里面的数据检索方式可以利用红黑树,跳表这种时间复杂度低的数据结构进行检索。而当上。此时写入磁盘的方式是顺序写,这也是为什么lsm写入性能高的原因。原创 2023-03-20 15:53:31 · 154 阅读 · 0 评论 -
【Elasticsearch】甩出11张图-让我们来构想(实现)一个倒排索引
在介绍倒排索引之前,先看看传统b+tree索引是如何存储数据的,每次新增数据的时候,b+tree就会往自身节点上添加上新增数据的key值,如果节点达到了分裂的条件,那么还会将一个节点分裂成两个节点。想一个场景,如果对用户的性别建立b+tree索引,性别只有男女之分,这样存在b+tree里是不是会存很多重复的key,如果用户数据量很大,我们想筛选出性别是男性的用户,是不是要遍历大量的数据。原创 2023-03-23 14:33:22 · 527 阅读 · 0 评论 -
看了还不懂b+tree的本质就来打我
大家好,我是蓝胖子。今天我们来看看b+tree这种数据结构,我们知道数据库的索引就是由b+tree实现,那么这种结构究竟为什么适合磁盘呢,它又有哪些缺点呢?我将不会对b+tree的一些定义做过多的讲解,因为这些东西网上一大推,关键还是要抓住本质,想想为什么b+tree这么设计?原创 2023-03-20 15:59:51 · 69 阅读 · 0 评论