
分布式
文章平均质量分 92
等我买完橘子便走
这个作者很懒,什么都没留下…
展开
-
业务系统如何保证一致性
Seata-AT 模式,在事务资源器执行数据操作(SQL)后,其它线程或服务可以对这条数据进行再次修改,但资源管理器任然可以发起Undo 操作,这就造成了“幻读”风险。Seata降低了传统2PC协议在准备阶段长时间锁定资源的问题,提高了系统并发性能,对业务代码侵入性较低,只需要简单的配置即可。Seata针对不同的框架有对应的jar包,比如Fegin和DUBBO都有对应的实现jar包,使用相对简单。生成失败日志,记录失败内容、原因、时间等要素,在失败后通过重试策略进行重新发放,双方要确认好幂等。原创 2024-03-14 17:31:37 · 1170 阅读 · 0 评论 -
分布式系统中的接口调用如何保证顺序性
业务场景:有三个连续的请求,必须保证其顺序性第一种方案:通过redis记录点评:这种方法太重,阻塞的接口会压榨服务器的并发数/吞吐量,只有当请求1失败后其他两个才能释放。第二种方案:前端串行请求在不追求高服务体验的时候可以限制下一个请求,当请求1没有处理完成前,前端不会发送第二个请求,并且后端系统在接收到请求2时直接返回错误信息,也可以在前端建立一个队列,按顺序发送...原创 2019-12-06 19:35:42 · 1412 阅读 · 1 评论 -
Redis分布式锁个人实现
Redis分布式锁的基础是Redis的单进程单线程,用来控制分布式系统之间同步访问共享资源。实现的原理是CAP。分布式锁的目的是对资源的保护,确保业务逻辑与预想的一致性、正确性。实现原理是每一个线程争夺对Redis的写操作的权限,从而获得操作业务代码的权限。网上有非常多不同版本的实现,但是总觉得都有一定的问题,所以自己写了一个实现。@Slf4jpublic class Redi...原创 2019-02-01 22:06:02 · 178 阅读 · 0 评论