- 博客(319)
- 收藏
- 关注
原创 榜单Zset
kafka流水 ===> 榜单ItemKey ===> 排行榜Zset(里面只存放Top K)ZREMRANGEBYRANK sorted_set 100 -1只保留前100名。消费kafka流水数据,更新ItemKey中的分数(Add)难点:榜单更新 Redis Zset 存在大key问题。重点:幂等性:同一个kafka流水不能重复更新。
2026-01-31 13:00:14
217
原创 不停机数据迁移
简单的理解,给数据库增加一个 is_synced 的标记,默认值是0,当同步后,值被修改为1。当DTS接收到 is_synced = 1的数据后,就直接扔掉。在阶段2时,切换到了阶段3,但是此时,老库的数据还没有完全同步到新库,此时,要以新库的数据为基准反向同步到老库。此时,就会Binlog死循环。工作中实战:在工作中都是借住公司的 DTS 平台,实现两个数据库之间的数据同步。【A==>B==>A】DTS循环同步。
2026-01-30 18:46:44
172
原创 Mysql/Redis缓存一致性
1. 性能高:kafka还是使用消费者组的多分区,但是生产者按照hash(id)选择分区,确保相同的id永远路由到一个分区(一个分区在同一个时刻只能被一个消费者处理,就能保证一个id只能被一个消费者处理)1. Canal接入的kafka如果是多分区,同一个ID会路由到不同的分区,消费者处理顺序会乱。】的操作,是升级的版本,因为Canal和读流程中都会更新Redis,这里要处理并发问题!2. 即使是单分区单消费者,如果消费者程序开启了go并发处理,也可能会乱序。2. 写:删除缓存,写数据库,延迟删除缓存。
2026-01-30 17:44:39
393
原创 分布式任务调度
2. 节点下线:假设现在有2个节点,节点1 处理0-50,节点2处理50-100,此时节点2下线了,那么这轮50-100的数据就没人处理了,但是也没关系,在下一个定时任务轮回,节点1会拿到0-100的range,重新处理。1. 节点上线:假设此时有1个节点,他正在处理0-100的任务,此时新增一个节点,那么新增的节点就会处理50-100的任务,此时会出现重复处理。场景:多个节点,并行扫描task_tab中的任务,“均分”执行(保证所有节点都能执行task_tab中的任务)- 执行节点的上下限监听。
2026-01-30 16:22:25
178
原创 Zookeeper
😄 最初了解它是在研究生期间,搭建过Hadoop集群,它用于为分布式集群提供一致性服务。它的核心是:类似树形文件系统、通知机制。下面先介绍几个小概念。答:防止脑裂 原因:两个机房通过一根网线相连接,每个机房6个主机,当断网后,各个机房主机都存活(符合半数存活,ZK可用原则),两个主机会各自选出leader,此时集群会出现双主,发生脑裂。
2023-07-31 18:32:45
978
原创 探究:kafka生产者/消费者与多线程安全
Kafka生产者是线程安全的,可以在多个线程中共享一个Kafka生产者实例。这是因为Kafka生产者实例内部使用了一些同步机制来保证线程安全,例如使用了线程安全的队列来缓存消息,使用了同步锁来保护共享资源的访问等。同时,Kafka生产者的send()方法是非阻塞的,可以在多个线程中并发调用,不会阻塞线程。Kafka生产者还提供了异步发送和同步发送两种发送方式,可以根据实际需求选择不同的发送方式。
2023-03-10 17:01:29
5185
原创 http2.0/http3.0(quic)/grpc
http2.0相较于http1.0的改进点http3.0相较于http2.0解决头部阻塞问题rpc与http的区别
2022-09-14 16:24:16
1929
原创 vscode+golang 高效编码
1. 快捷键设置vscode:只需要设置【前进、后退】{ "tabnine.experimentalAutoImports": true, "bracketPairColorizer.depreciation-notice": false, "window.zoomLevel": 1, "editor.fontSize": 14, // 单元测试: t.Log(xxx) "go.buildFlags": [ "-v" ],
2022-03-27 14:37:59
2731
原创 Golang常用逻辑
errgroup:https://github.com/go-kratos/kratos/blob/v1.0.x/pkg/sync/errgroup/doc.gopackage mainimport ( "GoRedis/pkg/errgroup" "GoRedis/pkg/str" "context" "fmt" "math/rand" "sync" "time")// chapter-1: 构造函数,"有选择"的初始化成员变量type sexType intconst
2022-03-26 18:56:28
908
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2