• 乐观锁vs悲观锁, 集群vs分布式 , 微服务, 幂等性


    乐观锁:

    总认为不会产生并发问题,因此不会上锁,更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作来实现

    version: 数据上有数据版本号version字段,每次更新version值加一

    CAS操作方式:compare and set, 三个参数,数据所在的内存值,预期值,新值,当需要更新时,判断内存值与之前取到的值是否相等,若相等,用新值更新,否则不断尝试

    悲观锁: 总是假设最坏的情况,每次取数据都认为其他线程会修改,所以都会加锁(读锁,写锁,行锁),当其他线程要访问数据时, 阻塞挂起。

    # --------------------------------------------------------------------------------------------------------------------------------

    集群: 同一个任务部署在多台机器上,提高系统可用性

    分布式: 将不同的业务分部在不同的地方

        分布式的每一个节点,都完成不同的任务,一个节点跨了,该任务就无法访问

    举例: 计算1到100加法

    集群: 每台集群都要完成1 加到 100, 耗时1秒,但可以多台机器同时进行计算,即1秒可以完成多次1 加到 100 这个请求

    分布式: 将 1 到100 拆成 例如10组部署10台机器,每台机器完成一组计算,耗时0.1 秒, 总用时 0.1秒

    总结: 分布式中的每一个节点都可以做集群,而集群不一定是分布式的

    # --------------------------------------------------------------------------------------------------------------------------------

    微服务:
    单体应用: 项目是一个整体,一旦出错,程序奔溃
    微服务: 项目拆成不同的服务,服务和服务之间交互,restful 接口


    幂等性:

    多次请求和一次请求的效果一样,put和patch 是幂等性,post不是
    post 是新增, put and patch 是修改,所以是幂等性

  • 相关阅读:
    my read travel
    OS + CentOS 7 / centos 7 / config / configuration / rescue / rc.local / yum
    my soft / win soft
    如何撰写发明专利申请文件
    专利局审查员如何审专利
    国际专利分类表(2016版)
    手把手教你写专利申请书/如何申请专利
    Packets switched through Linux bridge have very high packet delay variation and latency?
    当心僵尸:过时Linux内核的安全风险
    飞漫魏永明:从MiniGUI看嵌入式十年得与失
  • 原文地址:https://www.cnblogs.com/Afrafre/p/10609877.html
Copyright © 2020-2023  润新知