首页
学习
活动
专区
工具
TVP
发布

用户1337634的专栏

专栏作者
330
文章
590296
阅读量
30
订阅数
分布式一致性算法对比
实现分布式一致性的算法有很多种,各有优缺点,适用不同的场景 算法 一致性 性能 实现复杂度 依赖组件 是否侵入业务 其他 2PC/3PC 强一致性 差 复杂 依赖存储组件实现 无侵入 TCC 强一致性 一般 复杂 不依赖组件 需要提供try/confirm/cancel接口 本地消息表 最终一致性 好 简单 不依赖 基本无侵入 只能用在其他逻辑只能成功的场景 SAGA 最终一致性 好 一般 不依赖 业务需要提供补充逻辑以及监听其他子事务的事件 参考 分布式事务系列三:Saga
十毛
2021-07-19
3550
基于Redis和配置中心的实时频率限制
如果使用网关,一般可以在网关进行限频控制;如果使用nginx,也可以使用lua+redis实现分布式限频;但是有的底层服务提供给内网其他应用调用,有的调用方本身没有对客户请求限频,所以请求都会到达底层服务。 内部应用,就不一定走网关,所以底层服务本身需要提供限频能力。 关键特性 分布式限频:依赖redis组件 不同接口不同策略:比如耗时很长的接口,频率更低 多维度策略:针对不同维度组合使用不同的限频策略,比如(uid, ip),uid 动态调整:接入配置中心,可以实现策略的动态调整和开关 实现原理 根
十毛
2021-06-29
1.1K0
Spring分布式任务高效流程
项目中有很多定时任务,而且他们的执行模式非常类似,抽象整理如下 定时任务特点 比较多:项目中的定时任务很多,大概有20个左右 任务保存在Redis中:为了减少对数据库的压力,定时任务大部分都是使用Redis的ZSET进行存储 幂等:任务是幂等的 集群分布式执行 分布式锁: 虽然执行是幂等的,但是为了提高效率,还是使用分布式锁,保证一个任务只会被执行一次 执行流程 获取任务的批量数据 尝试获取数据对应的锁,如果没有获取就结束 再次在任务源中判断该数据是否待处理,如果是就处理,否则就跳过 执行该数据的任务
十毛
2021-06-29
4100
Spring Boot中使用Redisson分布式锁
Spring Boot使用Redisson特别简单,只要引入一个新的jar就可以,redis的配置跟其他的redis客户端可以兼容,可以不用再额外配置
十毛
2019-10-29
3K0
RedisTemplate执行lua脚本抛出异常IllegalStateException
因为没有指定ReturnType,所以默认使用ReturnType.STATUS,返回值就是io.lettuce.core.output.StatusOutput,这个类并没有重写CommandOutput中的方法。所以抛出异常IllegalStateException
十毛
2019-10-24
6K0
FastDFS服务器部署
按照单机部署模式在192.168.58.201上部署FastDFS(数据目录/home/dfs,tracker.conf配置)
十毛
2019-03-27
2K0
二阶段提交 vs 三阶段提交
二阶段提交本身比较简单,就是把分布式事务分成准备阶段和提交阶段两个阶段。目的很明确,就是尽可能晚地提交事务,让事务在提交前尽可能地完成所有能完成的工作,这样,最后的提交阶段将是一个耗时极短的微小操作,这种操作在一个分布式系统中失败的概率是非常小的,也就是所谓的“网络通讯危险期”非常的短暂,这是两阶段提交确保分布式事务原子性的关键所在。(唯一理论上两阶段提交出现问题的情况是当协调者发出提交指令后宕机并出现磁盘故障等永久性错误,导致事务不可追踪和恢复)。
十毛
2019-03-27
2.6K0
没有更多了
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档