开发拓展知识点

开发拓展知识点

1.接口幂等性

# 详见
http://www.liuqingzheng.top/article/1/01-%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%B9%82%E7%AD%89%E6%80%A7/

https://zhuanlan.zhihu.com/p/345428483


# 概念
  幂等性原本是数学上的概念
  用在接口上就可以理解为:同一个接口,多次发出同一个请求,必须保证操作只执行一次。
  # 多次操作,做的改变是一样的 


# 常见请求
post(新增接口)           ---> 执行了3次,会出现3条记录          不是幂等性的接口
get、delete、update请求  ---> 针对同一个请求,改变都是一样的      幂等性的接口



# 如果没有实现接口幂等性会有很严重的后果: 
  支付接口,重复支付会导致多次扣钱
  订单接口,同一个订单可能会多次创建

  eg:
    网络波动, 可能会引起重复请求
    用户双击提交按钮 用户重复操作
    使用浏览器历史记录重复提交表单

      
# 如何保证接口幂等性?
  -客户端防止重复调用
    按钮只可操作一次
    
  -服务端进行校验
    使用token机制   先删token,再进行业务操作
    
  # 如果出现数据库与缓存双写不一致? eg: token删除了,业务却处理失败
    可以让调用方配合处理一下,重新获取新的token,再次由业务调用方发起重试请求就ok了。

2.其他概念

# 云原生 
  云:云服务器(公有云:阿里,华为; 私有云:公司自己的服务器)
    
  原生:使用编程语言写的程序(go,python,java写的程序)

  -把这些程序,跑(部署执行)在云上,就叫云原生
    
  -云原生的组件:docker,k8s(***),jenkins,gitlab...   # 重点
    
    
# 云存储
  公有云存储:七牛云、阿里oss
  私有云存储:fastdfs、ceph、minio...
    
    
# 云计算的四个层次
  IaaS(基础架构即服务)
  PaaS(平台即服务)
  SaaS(软件即服务)
  DaaS(数据即服务)
    
        
# serverless:无服务 全部使用第三方服务

# 数据中台
  -前台 和 后台 中间再加一层
    
    
# 敏捷开发
  -敏捷开发的一个sprint:一周或两周
    
    
# devops、sre
  '开发运维一体化'
  -其实是一个概念,不同公司提出来的
  -运维+开发 保证云平台稳定运行---》sre,devops
    
    
# ci cd   jenkins+gitlab+docker
  -持续集成
  -持续部署
    
    
# 微服务
  -服务拆分----》分布式的子集
    
    
# 中间件
  -django中间件
  -消息队列中间件:rabbitmq,kafka
  -数据库中间件:mycat
  -服务器中间件:nginx、kong ---> api网关
  -缓存中间件:redis
    
    
# DDD:领域驱动设计
  -只是一个概念
  -核心的逻辑写在数据层
posted @ 2022-10-06 00:08  Edmond辉仔  阅读(33)  评论(0)    收藏  举报