【Java面试】07——分布式(待整理)

  • 分布式

  • 幂等

    1. 概念
      幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。用通俗的话讲,幂等就是一个操作,不论执行多少次,产生的效果和返回的结果都是一样的
    2. 编程中的幂等相关
      • 查询操作
        数据在没有修改操作的情况下,查询一次和查询多次,查询的结果都是一样的。
      • 悲观锁
        比如select操作加锁查询:select * from table_xxx where id=’xxx’ for update;
        注意:id字段一定是主键或者唯一索引,不然是锁表
      • 乐观锁
        乐观锁并不会使用数据库提供的锁机制。 一般的实现乐观锁的方式就是记录数据版本。 数据版本,为数据增加的一个版本标识。 当读取数据时,将版本标识的值一同读出,数据每更新一次,同时对版本标识进行更新,比如CAS(campare and swap)。
      • 分布式锁
        通过第三方系统(redis或者zookeeper),在业务系统插入数据或者更新操作的时候,获取分布式锁,更新完操作后,释放分布式锁。比如redis线程,具有原子性操作的特点,可以用lua脚本执行redis命令。
    3. 使用场景
      • 前端重复提交数据,后台应只产生对应这个数据的一个返回结果,比如商品详情、产品详情的保存;
      • 创建业务订单,一次业务请求只能创建一个订单;
      • 商品的扣还库存数据操作。
  • 微服务高可用

  • 消息队列

  • docker
    https://segmentfault.com/a/1190000017128237

  • Redis

参考链接:
https://825635381.iteye.com/blog/2276077

文章目录
|