首页 > 其他分享 >开发拓展知识点

开发拓展知识点

时间:2022-10-06 00:23:46浏览次数:48  
标签:知识点 服务 请求 中间件 接口 --- token 开发 拓展

开发拓展知识点

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:领域驱动设计
  -只是一个概念
  -核心的逻辑写在数据层

标签:知识点,服务,请求,中间件,接口,---,token,开发,拓展
From: https://www.cnblogs.com/Edmondhui/p/16756857.html

相关文章

  • 旁路电容与去耦电容——作为硬件设计初学者整理的一些散碎的知识点
    在使用一些芯片的时候,在芯片的电源引脚处,经常看到有两个并联的电容连接在引脚上,并联电容的一端接电源电压,另一端接地。或是只有一个电容进行接地。 从一......
  • new project 前后端开发总结(net6+vue+mysql+redis+mq+mongodb+ES+docker)
    newproject前后端开发总结1.开发工具:vscode,vs2022,sqlserver2.前端:vue3,vite,typescript,scss,elementplus,router,asiox,vuex3.后端:.net6,automapper,autoface,sqlsu......
  • java开发环境的安装之IDEA
    一、JDK、JRE、JVM本文编写思路来自于博主狂神说1、定义jdk:JavaDevelopmentKit(Java语言的软件开发工具包)JDK的说明jre:JavaRuntimeEnvironment(java运行环境)JRE......
  • Java了解知识点
    Java了解#编辑器java:idea(收费)、eclipse(免费)、MyEclipse(收费)#编译型语言java:一处编码,处处运行#java是编译型还是解释型?编译型#编译过程:......
  • 【CV知识点汇总与解析】|损失函数篇
    【CV知识点汇总与解析】|损失函数篇【写在前面】本系列文章适合Python已经入门、有一定的编程基础的学生或人士,以及人工智能、算法、机器学习求职的学生或人士。系列文章包......
  • Libgdx游戏开发(2)——接水滴游戏实现
    原文:Libgdx游戏开发(2)——接水滴游戏实现-Stars-One的杂货小窝本文使用Kotlin语言开发通过本文的学习可以初步了解以下基础知识的使用:BasicfileaccessCleari......
  • 【为高效开发而生】MyBatisPlus破冰行动
    MyBatisPlusMyBatis-Plus(opensnewwindow)(简称MP)是一个MyBatis(opensnewwindow)的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。官网地......
  • Django3.2整站开发
    DTL模版引擎模版配置第一步:在项目配置文件中配置模版引擎相关的配置,Django默认引擎为DTL。TEMPLATES=[{ #配置模版引擎,默认使用DjangoTemplateLangua......
  • 多环境开发
         ......
  • 你帮我助软件开发-PSP
      设计思路    实现需求只需要一个简单的单向链表,通过添加、删除、查找、遍历等基本操作即可。  设计实现    用Struct记录物品的信息,name、ow......