10 2019 档案
摘要:分布式锁除了 redis实现外还有:数据库乐观锁和zookeeper效率有限。 分布式锁要满足以下条件: 互斥性:确保同一时刻只有一个客户端持有锁。 不死锁:一个客户端持有锁因断网,崩溃等原因失联了,仍可让下一个人得到锁。 容错性:大部分redis节点可用,客户端就可以加锁解锁。 统一性:加锁和解锁
阅读全文
摘要:一、分布式锁: 场景:销售电影票(一个商品只能卖一个人)。 流程: 流程制定:看票》买票》将座位号做为key 用户名作为value 存入redis》交钱》改各种状态》清缓存 应该注意:1.问题:用户还没走到清缓存这一步就退出 会导致缓存一直存在。 解决:redis要设置过期时间 set expire
阅读全文
摘要:一 概念 熔断的三个功臣:sentinel hystrix resilience4j 。 熔断解决的问题:A调用B B调用C 如果C出现了错误流量过大 或者 出现了异常 引发线程等待 则会拖垮整个调用链。 spring 的调用链一般是这样的:Feign 音标:[feɪn] 》 hystrix 音标:
阅读全文
摘要:根据例子介绍参数: 1:commandKey:配置全局唯一标识服务的名称,如果不配置,则默认是@HystrixCommand注解修饰的方法名。 2:groupKey:重要 配置全局唯一标识服务分组的名。通过设置分组,Hystrix会根据组来组织和统计命令的报告、仪表盘等信息。。默认情况下,Hystr
阅读全文
摘要:问题出在哪里:TCP协议有一个TCP_NODELAY 参数会引发延迟。 调用方使用 Apache HTTPClient tcpNoDelay 默认 true , 被调用方使用HTTP服务,用的JDK自带的HttpServer 在ServerConfig 中发现 noDelay 默认 false 解决
阅读全文
摘要:一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性
阅读全文
摘要:首先提到两个概念:脏读 不可重复读 脏读:上一个访问数据库的请求还没结束 下一个请求来了 就看到上一个请求进行的修改 这就属于脏读 比如: a 在提款机 看自己的账户余额 100元 然后存20元 但是还没 落库 这时候b给他打50元 b应该是 100+50 但如果隔离级别不够(读未提交)就会造成b看
阅读全文