TCP 可靠吗?为什么?

分享一个简单的迭代学习机器人双臂控制(MATLAB) 1 什么是迭代学习控制 迭代学习控制(iterative learning control,简称ILC)由Uchiyama于1978年首先提出,不过因为论文由日文撰写,影响不是很大。1984年,Arimoto等人用英文介绍了该方法。它是指不断重复一个同样轨迹的控制尝试,并以此修正控制律,以得到非常好的控制效果的控制方法。 迭代学习控制的特点是“在重复中学习”,通过反复的迭代修正,达到改善控制效果的目的。迭代学习控制的原理是根据系统前次运行所获得的输出误差信息,在控制过程中不断修正控制输入,随着迭代的进行,逐 阅读详情

Tektoncd Operator 是一个 Kubernetes 的扩展,用于在 Kubernetes 集群上安装、升级和管理 TektonCD Pipelines、Dashboard、Triggers 等。我们只需要编写各个组件的 yaml 就可以直接来管理 Tekton 的各种组件。

CRD

描述

​ ​TektonConfig​ ​

配置要安装和管理的 Tekton 组件。

​ ​TektonPipeline​ ​

配置安装管理 Tekton Pipeline 组件。

​ ​TektonTrigger​ ​

配置安装管理 Tekton Trigger 组件。

​ ​TektonDashboard​ ​

配置安装管理 Tekton Dashboard 组件。

​ ​TektonResult​ ​

配置安装管理 Tekton Result 组件。

​ ​TektonAddon​ ​

配置安装管理插件,目前仅支持 Openshift。

安装

安装 Tektoncd Operator 有多种方式。

从 Operator Hub 安装

可以直接前往 Operator Hub 页面 https://operatorhub.io/operator/tektoncd-operator 进行安装,其生命周期将由 Operator Lifecycle Manager (OLM) 进行管理。

使用资源清单文件安装

可以直接从 Github Release 页面 https://github.com/tektoncd/operator/releases 获取资源清单文件,使用这种方式安装,需要自己管理 Operator 的生命周期。

直接使用下面的命令进行安装即可。

$ kubectl apply -f https://storage.googleapis.com/tekton-releases/operator/latest/release.yaml

由于官方使用的镜像是 gcr 的镜像,所以正常情况下我们是获取不到的,如果你的集群由于某些原因获取不到镜像,可以使用下面的资源清单文件:

$ kubectl apply -f https://my-oss-testing.oss-cn-beijing.aliyuncs.com/k8s/tekton/operator/release.v0.60.0.yml

默认情况下 Tektoncd Operator 创建的对象会使用 gcr 的镜像,比如 Tekton Pipelines 控制器的镜像,可以通过环境变量 IMAGE_PIPELINES_TEKTON_PIPELINES_CONTROLLER 来指定对应的镜像,如下所示的环境变量是覆盖默认的 gcr 镜像的配置方式:

- name: IMAGE_PIPELINES_PROXY
  value: cnych/tekton-operator-proxy-webhook:v0.60.0
- name: IMAGE_JOB_PRUNER_TKN
  value: cnych/tekton-operator-pruner-tkn:v0.60.0
- name: IMAGE_PIPELINES_TEKTON_PIPELINES_CONTROLLER
  value: cnych/tekton-controller:v0.37.2
- name: IMAGE_PIPELINES_WEBHOOK
  value: cnych/tekton-webhook:v0.37.2
- name: IMAGE_PIPELINES_ARG__ENTRYPOINT_IMAGE
  value: cnych/tekton-entrypoint:v0.37.2
- name: IMAGE_PIPELINES_ARG__GIT_IMAGE
  value: cnych/tekton-git-init:v0.37.2
- name: IMAGE_PIPELINES_ARG__IMAGEDIGEST_EXPORTER_IMAGE
  value: cnych/tekton-imagedigestexporter:v0.37.2
- name: IMAGE_PIPELINES_ARG__KUBECONFIG_WRITER_IMAGE
  value: cnych/tekton-kubeconfigwriter:v0.37.2
- name: IMAGE_PIPELINES_ARG__NOP_IMAGE
  value: cnych/tekton-nop:v0.37.2
- name: IMAGE_TRIGGERS_TEKTON_TRIGGERS_CONTROLLER
  value: cnych/tekton-triggers-controller:v0.20.1
- name: IMAGE_TRIGGERS_WEBHOOK
  value: cnych/tekton-triggers-webhook:v0.20.1
- name: IMAGE_TRIGGERS_TEKTON_TRIGGERS_CORE_INTERCEPTORS
  value: cnych/tekton-triggers-interceptors:v0.20.1
- name: IMAGE_TRIGGERS_ARG__EL_IMAGE
  value: cnych/tekton-triggers-eventlistenersink:v0.20.1

上面的方式会创建一个名为 tekton-operator 的命名空间,其中包含一个 Operator 和一个 Webhook 的 Pod:

$ kubectl get pods -n tekton-operator
NAME                                       READY   STATUS    RESTARTS   AGE
tekton-operator-9d747548b-67t7m            2/2     Running   0          9m42s
tekton-operator-webhook-6cc769b85d-fssq9   1/1     Running   0          9m42s

安装 Operator 后,就可以安装所需的 Tekton 组件,例如 Tekton Pipeline、Tekton Triggers。

每个 Tekton 组件都有一个自定义资源,用于安装和管理组件。

$ kubectl get crd |grep tekton |grep operator
tektonchains.operator.tekton.dev                    2022-07-25T00:51:07Z
tektonconfigs.operator.tekton.dev                   2022-07-25T00:51:07Z
tektondashboards.operator.tekton.dev                2022-07-25T00:51:07Z
tektonhubs.operator.tekton.dev                      2022-07-25T00:51:07Z
tektoninstallersets.operator.tekton.dev             2022-07-25T00:51:07Z
tektonpipelines.operator.tekton.dev                 2022-07-25T00:51:07Z
tektonresults.operator.tekton.dev                   2022-07-25T00:51:07Z
tektontriggers.operator.tekton.dev                  2022-07-25T00:51:07Z

其中 TektonConfig 是创建其他组件的顶级 CRD。所以我们只需创建具有所需配置的 TektonConfig 对象即可,它将会帮助我们安装相应的其他组件。

TektonConfig 将根据传递给它的配置文件创建 TektonPipeline、TektonTriggers 和其他组件 CR 对象,其中有一个 profile 的字段,可以用于确定要安装的所有组件。

Tektoncd Operator 内置了 3 个 profile:lite、all、basic。

  • all:此配置文件将安装所有组件。
  • basic:此配置文件将仅安装 TektonPipeline 和 TektonTrigger 组件。
  • lite:此配置文件将仅安装 TektonPipeline 组件。

比如我们要安装 pipelines、triggers 和 dashboard,可以使用 all 这个 profile 进行安装,如下资源清单所示:

# tekton-operator-profile-all.yaml
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
  name: config
spec:
  profile: all
  targetNamespace: tekton-pipelines
  pruner:
    resources:
      - pipelinerun
      - taskrun
    keep: 100
    schedule: "0 8 * * *"

其中 targetNamespace 用来指定安装 Tekton 组件的命名空间,默认为 tekton-pipelines,pruner 为 Tekton 资源提供自动清理功能。

  • resources:指定可以自动清理的资源。
  • keep:清理时要保留的最大资源数。
  • schedule:清理资源的频率。

直接安装上面的资源对象即可:

$ kubectl apply -f tekton-operator-profile-all.yaml
$ kubectl get tektonconfig
NAME     VERSION   READY   REASON
config   v0.60.0   True

上面的 TektonConfig 对象我们配置的 profile 为 all,会自动为我们创建 tektonpipelines、tektontriggers、tektondashboard 组件对象:

$ kubectl get tektonpipelines
NAME       VERSION   READY   REASON
pipeline   v0.37.0   True
$ kubectl get tektontriggers
NAME      VERSION   READY   REASON
trigger   v0.20.1   True
$ kubectl get tektondashboard
NAME        VERSION   READY   REASON
dashboard   v0.27.0   True

上面的这几个 cr 对象创建后就会自动创建对应的组件,如下所示:

$ kubectl get pods -n tekton-pipelines
NAME                                                 READY   STATUS             RESTARTS   AGE
tekton-dashboard-84dc6f966b-g8flx                    0/1     ImagePullBackOff   0          3m48s
tekton-operator-proxy-webhook-7587596c79-ld8vm       1/1     Running            0          30m
tekton-pipelines-controller-78bc48896b-sd9fk         1/1     Running            0          30m
tekton-pipelines-webhook-5f48c855b4-js54q            1/1     Running            0          30m
tekton-triggers-controller-668b94cb5b-ggbk7          1/1     Running            0          27m
tekton-triggers-core-interceptors-66b7ddd78c-pq7gb   1/1     Running            0          27m
tekton-triggers-webhook-c8fd7755d-rknch              1/1     Running            0          27m

由于 dashboard 组件的镜像没有对应的覆盖的环境变量,所以需要我们手动进行修改:

$ kubectl edit deploy tekton-dashboard -n tekton-pipelines
......
    image: cnych/tekton-dashboard:v0.28.0
......

Dashboard 的服务默认通过 ClusterIP 方式进行暴露,我们可以手动创建一个 Ingress 对象或者修改 Service 为 NodePort 方式进行暴露。

$ kubectl get svc -n tekton-pipelines
NAME                                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                              AGE
tekton-dashboard                    ClusterIP   10.102.221.101   <none>        9097/TCP                             28m
tekton-operator-proxy-webhook       ClusterIP   10.96.175.155    <none>        443/TCP                              33m
tekton-pipelines-controller         ClusterIP   10.99.0.85       <none>        9090/TCP,8008/TCP,8080/TCP           33m
tekton-pipelines-webhook            ClusterIP   10.106.195.14    <none>        9090/TCP,8008/TCP,443/TCP,8080/TCP   33m
tekton-triggers-controller          ClusterIP   10.99.84.154     <none>        9000/TCP                             30m
tekton-triggers-core-interceptors   ClusterIP   10.97.83.136     <none>        8443/TCP                             30m
tekton-triggers-webhook             ClusterIP   10.108.88.140    <none>        443/TCP                              30m

测试

Tekon 的组件安装完成后,接下来我们来运行一个简单的 Pipeline。

首先创建一个如下所示的 Task 任务,下面的任务中会在 bash 容器中去执行 echo "Hello, world!" 的命令。

# hello-task.yaml
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: hello
spec:
  steps:
    - name: hello
      image: bash:latest
      command:
        - echo
      args:
        - "Hello, world!"

用同样的方式再创建一个 goodbye 的任务,只需要将上面的 echo 内容修改为 goodbye 即可。

然后就可以定义一个 Pipeline 流水线了,如下所示:

# hello-goodbye-pipeline.yaml
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: hello-goodbye-pipeline
spec:
  tasks:
    - name: hello
      taskRef:
        name: hello
    - name: goodbye
      runAfter:
        - hello
      taskRef:
        name: goodbye

通过 taskRef 引用对应的 Task 对象。

直接创建上面的资源对象即可:

$ kubectl get pipeline
NAME                     AGE
hello-goodbye-pipeline   24s
$ kubectl get task
NAME      AGE
goodbye   101s
hello     107s

要执行该流水线,我们还需要创建一个 PipelineRun 的对象才会真正执行。

# hello-goodbye-pipeline-run.yaml
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  generateName: hello-goodbye-pipeline-
spec:
  pipelineRef:
    name: hello-goodbye-pipeline

创建上面的资源即可,需要注意我们这里使用的 ​ ​generateName​ ​ 属性,需要使用 ​ ​kubectl create​ ​ 命令进行创建。正常创建后很快就会按照上面 Pipeline 的描述去执行两个任务了。

要想卸载 Tekton 我们也只需要将定义的 ​ ​TektonConfig​ ​ 对象删除即可。

如果不想使用 TektonCD Operator 内置的几个 ​ ​profile​ ​,我们也可以自己手动去分别配置不同组件的 CR 实例,另外 TektonCD Operator 现阶段提供的可配置方式并不多,特别是对于国内用户来说镜像这个老大难的问题,只能通过环境变量去全局覆盖 Operator,还有部分镜像压根没有覆盖,如果是在国内使用并且不能使用 gcr 镜像的话可能体验就不是那么顺畅了。

FPGA实现串口升级及MultiBoot(十)串口升级SPI FLASH实现 采用软核进行串口升级的原因主要有以下几点:1、官方推荐:官方以前也推出了针对逻辑进行升级的程序《XAPP1081_QuickBoot》,但是从今年起(2024年)官方就停止更新相关例程了(详见下面截图),所以采用官方推荐的软核更新;2、简单并具有通用性:针对SPI或者BPI官方都有相关的IP,可应对市场上80%以上的FLASH,并且官方IP通用性极强,只需要修改几个参数就可以对不同厂家的芯片进行升级操作; 阅读详情

相关推荐

P450酶催化循环的Amber-Gromacs混合模拟实战:从血红素加氧到产物释放

本文详细介绍了针对P450酶完整催化循环的Amber-Gromacs混合模拟实战策略。通过Amber为关键氧合血红素中间体(CPDI)构建精确力场,再利用Gromacs的高效GPU加速进行长时间尺度动力学模拟,完整覆盖从底物结合到产物释放的催化过程,为研究酶催化机制提供了强大的计算工具。

weixin_29201859的博客 313

Tekton笔记(一)之trigger

本篇的内容是在一个现成的pipeline的基础上,配置一个trigger,最后用curl命令触发运行来验证功能。

weixin_42574058的博客 430

用STM32手搓一个体温计

市面上大多额温计、测温计精度。

m0_61687959的博客 2375

Tekton — 通过tekton-operator部署tekton组件

Tektoncd Operator 作为一个 Kubernetes 的扩展,可以方便快捷地在 Kubernetes 集群上安装、升级和管理 Tekton Pipelines、Dashboard、Triggers 等组件。

李少侠 985

livebos报表开发

文章目录1.参数的设定2.展示的内容3.综合展示的效果4.调用过程5.可以在数据库里面查看6.注意事项7.过程代码 1.参数的设定 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-flb5C49A-1619516341977)(/uploads/xinxibuneibuzhishiku/images/m_bc71bb4608053778dbf29e06cd102ae1_r.png)] 2.展示的内容 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-

阿浪的专栏 709

ESP32 IDF开发 应用篇⑲ 空中升级OTA

在实际产品开发过程中,在线升级可以远程解决产品软件开发引入的问题,更好地满足用户需求。OTA(空中)更新是使用 Wi-Fi 连接而不是串行端口将固件加载到 ESP 模块的过程。(1)、ESP32 的 OTA 升级有三种方式:·Arduino IDE:主要用于软件开发阶段,实现不接线固件烧写·Web Browser:通过 Web 浏览器手动提供应用程序更新模块·HTTP Server:自动使用http服务器 - 针对产品应用在三种升级情况下,必须通过串行端口完成第一个固件上传。

lu330274924的博客 3324

Kubernetes 部署 Tekton-Operator

Tekton Operator 是一个 Kubernetes 扩展,用于在任何 Kubernetes 集群上安装、升级和管理 TektonCD Pipelines, Dashboard, Triggers(和其他组件)。实体描述配置要安装和管理的 Tekton 组件。配置要安装和管理的 Tekton Pipeline 组件。配置要安装和管理的 Tekton Trigger 组件。配置要安装和管理的 Tekton Dashboard 组件。配置要安装和管理的 Tekton Result 组件。

IT 1230

BLDC方波控制双闭环Simulink仿真模型

无刷直流电机方波控制双闭环Simulink仿真模型搭建详细教程,包括速度PI环、电流PI环、换向逻辑和受控电压源,仿真结果良好。

m0_57458432的博客 6869

Mermaid-live-editor源码剖析:React + Mermaid集成架构详解

Mermaid-live-editor是一个基于React和Mermaid的在线图表编辑工具,它提供了直观的界面让用户实时编写和预览Mermaid图表。本文将深入剖析其源码架构,帮助开发者理解React与Mermaid的集成方式及核心实现原理。 ## 项目整体架构概览 Mermaid-live-editor采用典型的React单页应用架构,主要分为以下几个核心模块: - **路由管理**:使

gitblog_00089的博客 417

MODTRAN5.2.1安装配置

MODTRAN5.2.1安装配置

Home 4250

从东南大学906被刷到调剂过程(内含个人感想)

介绍了自己在看到初试成绩,到后期复习以及调剂的全过程,当中也包含了自己的复试中的感想,希望大家理性看待。

Philo的博客 2854

【 云原生 | kubernetes 】- tekton构建CI/CD流水线(一)

Tekton 是用于构建 CI/CD 管道的云原生解决方案。它由提供构建块的 Tekton Pipelines 和支持组件(例如 Tekton CLI 和 Tekton Catalog)组成,它们使 Tekton 成为一个完整的生态系统。Tekton 是项目的 一部分。

ycloud 2206

Ubuntu22.04如何安装cuDNN8.9.7

本文详细介绍了在Ubuntu 22.04系统上为CUDA 12.2安装适配cuDNN 8.9.7的完整流程,特别针对RTX A6000显卡。主要内容包括:1)选择与CUDA 12.2兼容的cuDNN版本;2)使用deb包方式的安装步骤(添加仓库、导入密钥、安装组件);3)通过MNIST示例验证安装;4)版本锁定、卸载旧版等补充说明;5)性能测试方法。文中强调了版本匹配的重要性,并提供了多卡配置建议,为搭建深度学习开发环境提供完整指导。

2501_93651177的博客 1844

为什么TCP是可靠的

为什么TCP是可靠的 保证TCP可靠的方式主要有: 校验和 序列号 确认应答 超时重传 连接管理 流量控制 拥塞控制 一、校验和 计算方式:在数据传输的过程中,将发送的数据段都当做一个16位的整数。将这些整数加起来。并且前面的进位不能丢弃,补在后面,最后取反,得到校验和。 发送方:在发送数据之前计算检验和,并进行校验和的填充。 接收方:收到数据后,对数据以同样的方式进行计算,求出校验和,与发送方的进行比对。 注意:如果接收方比对校验和与发送方不一致,那么数据一定传输有误。但是如果接收方比对校验和与发送

H_Q_Li的博客 3399

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

TCP为什么是可靠的

TCP的定义:是一种面向连接的、可靠的、基于字节流的传输层通信协议那么肯定会有人疑惑,为什么他是可靠的呢?(也是在面试的过程中经常被问得)TCP是怎样实现的呢?TCP在传输的时候会有三次握手、以及四次挥手来建立连接和断开连接在数据传输时候,提供了检验和、序列号/确认应答、超时重传、最大消息长度、滑动窗口、拥塞控制等方法。

Rice_w的博客 1059

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

TCP为什么是可靠的传输

TCP为什么是可靠的传输 (1)检验和 TCP检验和的计算与UDP一样,在计算时要加上12byte的伪首部,检验范围包括TCP首部及数据部分,但是UDP的检验和字段为可选的,而TCP中是必须有的。 计算方法为: 在发送方将整个报文段分为多个16位的段,然后将所有段进行反码相加,将结果存放在检验和字段中,接收方用相同的方法进行计算,如最终结果为检验字段所有位是全1则正确(UDP中为0是正确),否则存...

weixin_45923633的博客 1524

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

为什么说 TCP 协议是可靠的?

TCP 协议是 TCP/IP 协议栈中的传输层的协议,TCP协议又叫传输控制协议(Transport Control Protocal)。众所周知,它是一个可靠协议。因为它能保证接收端完整地接受到发送端发送的数据包,即保证不丢包。

骏马逸动,心随你动的博客 6118

TCP为什么可靠?

序列号和确认应答确保数据按顺序且完整地传输。超时重传和快速重传机制保证丢包时数据能够被及时修复。流量控制和拥塞控制避免了网络拥堵和数据丢失。校验和提供了数据完整性保证。数据顺序保证和连接管理确保数据的顺利传输和安全关闭。

萌萌白白的博客 1315

TCP协议为什么可靠?

TCP协议为什么可靠? 建立连接、传输数据两方面

YLC_慕类的博客 3159

TCP为什么可以做到可靠传输?

TCP又称为可靠传输协议,这个可靠是指数据一定可以毫无遗漏的交给对方。但是是不是说我们开发了一个应用程序给另一个应用程序发送消息,他就一定能够收到呢?我们开发的时候用了TCP,而且TCP又是可靠的传输协议,那为什么我们的应用程序依然要处理要处理消息丢失,消息完整性校验等问题?

不爱学习 1万+

tcp为什么要三次握手,tcp为什么可靠

转自https://www.cnblogs.com/LUO77/p/5771237.html 大体看过,没有深入研究,有需要时继续看。 为什么不能两次握手:(防止已失效的连接请求又传送到服务器端,因而产生错误) 假设改为两次握手,client端发送的一个连接请求在服务器滞留了,这个连接请求是无效的,client已经是closed的状态了,而服务器认为client想要建立 一个新的连接,于是向cli...

PizerWang的博客 816

TCP协议为什么可靠

最近阅读《图解TCP/IP一书》,在传输层协议一章重点讲述了TCP协议,相比UDP协议,TCP的实时性不够他好,显而易见TCP保证可靠性的同时无疑牺牲了实时性,那么接下来就总结下TCP是如何保证实时性的 使用序列号和确认应答 TCP为了保证传输的信息传达到了,接收方在接收到消息后会返回给发送方一个应答信号,即ACK,如果发送方收到了ACK应答信号,说明消息正确传输到了,但是通常发送方会发多条消息,回复的ACK信号是对应哪一条无法确认,所以TCP给每一条信息都附带了序列号 序列号是TCP按顺序给发送数据的每一

B1azar的博客 2898

为什么有了可靠地TCP还需要不可靠的UDP

近来有些面试中被问到了这个问题,那么就在此总结一下吧,希望对大家有用。 首先,先说一下TCP和UDP的区别。 1.TCP是面向连接的协议,有确认重传机制,流量控制机制等;而UDP是非面向连接的协议,尽力而为的传送数据,重传有上层协议来控制,也可以使用connect()来控制。 2.从头部结构来说,TCP因为有选项部分,所以有首部长度字段;而UDP没有选项部分,所以不需要首部长度字段。

wolfzhaoshuai的专栏 1万+

TCP为什么可靠

TCP为什么安全可靠1、序列号与确认号当发送错误的时候,会发生:a、超时重传机制发送方发送的报文中含有序列号,每当发送一个报文后,就启动一个计时器(RTO),该计时器的时间一般是有当前网络来决定的,一个RTT指的是当一个报文从发送到接收到对应的ACK标志的时间,RTO的决定一般是发送方尝试发送几个报文,然后取平均RTT时间来决定计时器的值。 当发送一个报文以后,发送方在计时范围以内,如果没有接收到...

Awille的博客 1万+

为什么TCP传输是可靠的

TCP提供一种面向连接的、可靠的字节流服务。   面向连接:意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。 TCP通过下列方式来提供可靠性: 1、应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。

wujiafei_njgcxy的博客 4133

《TCP》-TCP为什么可靠

事务隔离级别 当我们有多个客户端同时操作数据库的某张表,如何进行隔离操作?MySQL提供了隔离级别。 当MySQL表被多个线程或者客户端开启各自事务操作数据库中的数据时,MySQL提供了一种机制,可以让不同的 事务在操作数据时,具有隔离性。从而保证数据的一致性。 无隔离性的问题 脏读 是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务 也访问这个数据,然后使用了这个数据。 案例: 1.Mary的原工资为1000, 财务人员将Mary的工资改为了8000(但未

WeiMengXS的博客 350
上一篇: Zadig 面向开发者的自测联调子环境技术方案详解
下一篇: 使用 Zadig 交付云原生微服务应用
JavaMonsterr
博客等级 码龄4年 211粉丝 481原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值