不会Python插件开发?你还在手动配置Jenkins流水线吗,效率提升90%的秘密在这里

第一章:Jenkins与Python插件开发概述

Jenkins 是一个开源的持续集成与持续交付(CI/CD)自动化服务器,广泛用于构建、测试和部署各类软件项目。其高度可扩展的架构允许开发者通过编写插件来增强功能。尽管 Jenkins 核心基于 Java 开发,但借助其灵活的执行环境,开发者可以利用 Python 编写脚本化任务,甚至开发与 Jenkins 深度集成的插件。

Jenkins 插件生态简介

Jenkins 的功能主要通过插件实现,涵盖源码管理、构建触发器、通知机制等多个方面。插件使用 Java 或 Groovy 编写,并打包为 .hpi 文件部署。虽然原生不支持 Python 插件,但可通过以下方式实现 Python 集成:
  • 在构建步骤中调用 Python 脚本
  • 使用 Jenkins Pipeline 调用外部 Python 程序
  • 通过 REST API 与 Python 后端服务通信

Python 在 Jenkins 中的应用场景

Python 常用于自动化测试、日志分析、配置生成等任务。以下是一个在 Jenkins Pipeline 中执行 Python 脚本的示例:

pipeline {
    agent any
    stages {
        stage('Run Python Script') {
            steps {
                script {
                    // 执行本地 Python 脚本
                    sh 'python3 analyze_logs.py --input build.log'
                }
            }
        }
    }
}
该代码段定义了一个 Jenkins Pipeline 阶段,使用 sh 步骤调用系统安装的 Python3 解释器运行日志分析脚本。

集成开发模式对比

集成方式适用场景维护成本
Shell 调用 Python 脚本简单任务自动化低
Python 调用 Jenkins API外部系统触发构建中
Java 插件嵌入 Python 逻辑深度功能集成高
graph TD A[Jenkins Job] --> B{Execute Step} B --> C[Run Python Script] C --> D[Generate Report] D --> E[Publish to Dashboard]

第二章:Jenkins插件架构与Python集成原理

2.1 Jenkins插件系统核心组件解析

Jenkins插件系统基于Java的类加载机制,通过独立的类加载器(Plugin ClassLoader)实现模块化扩展。每个插件以HPI(Hudson Plugin Index)格式打包,包含元数据、扩展点实现与资源文件。
核心组件构成
  • Extension Point:定义插件可扩展的功能接口,如构建步骤、构建触发器;
  • Extension:插件对扩展点的具体实现;
  • Plugin Manager:负责插件的动态加载、依赖解析与生命周期管理。
插件描述符示例
<plugin>
  <groupId>org.jenkins-ci.plugins</groupId>
  <artifactId>git</artifactId>
  <version>4.10.0</version>
</plugin>
上述Maven依赖声明用于引入Git插件,由Jenkins插件平台解析并加载其提供的SCM扩展功能,支持源码拉取与分支策略配置。

2.2 Python在Jenkins中的执行环境搭建

在Jenkins中运行Python脚本前,需确保构建节点具备完整的Python执行环境。首先,通过系统包管理器安装Python 3及常用依赖库。
  1. 确认Jenkins Agent所在主机已安装Python 3:
python3 --version
sudo apt update && sudo apt install -y python3 python3-pip
该命令检查Python版本并安装pip包管理工具,为后续依赖管理打下基础。
配置Jenkins任务中的Python执行步骤
在Jenkins Pipeline中,可通过sh指令调用Python脚本:
pipeline {
    agent any
    stages {
        stage('Run Python Script') {
            steps {
                sh 'python3 /path/to/your/script.py'
            }
        }
    }
}
此配置使Jenkins在构建时执行指定Python脚本,适用于自动化测试、部署与数据处理等场景。

2.3 插件生命周期管理与事件监听机制

插件系统的核心在于对生命周期的精准控制与事件的高效响应。每个插件从加载、初始化、运行到销毁,均通过预定义的生命周期钩子进行管理。
生命周期阶段
  • onLoad:插件首次加载时触发,用于资源预加载;
  • onReady:依赖注入完成后执行,标志插件就绪;
  • onDestroy:释放内存与解绑事件监听。
事件监听机制
通过注册观察者模式实现事件驱动通信:
plugin.on('dataUpdate', (payload) => {
  console.log('Received:', payload);
});
上述代码注册了一个针对 dataUpdate 事件的回调函数,payload 携带更新数据。事件总线统一调度,确保异步通信解耦与高效传递。

2.4 基于Jython实现Python脚本嵌入实践

在Java平台中集成Python脚本,Jython提供了无缝的桥梁。它将Python代码编译为Java字节码,直接运行于JVM之上,实现语言间的高效互操作。
环境准备与依赖引入
使用Maven管理项目时,需引入Jython核心依赖:
<dependency>
    <groupId>org.jython</groupId>
    <artifactId>jython-standalone</artifactId>
    <version>2.7.3</version>
</dependency>
该包包含完整的Python标准库支持,允许在Java中直接调用Python函数。
执行Python脚本示例
通过PythonInterpreter实例可执行内联脚本:
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("print('Hello from Python!')");
interpreter.set("name", new PyString("Jython"));
interpreter.exec("result = 'Hello, ' + name");
PyObject result = interpreter.get("result");
System.out.println(result.toString());
上述代码展示了变量传递与结果获取机制:set()向Python上下文注入变量,get()提取执行结果。
优势与适用场景
  • 无缝调用Java类库的Python脚本
  • 动态配置与规则引擎的灵活实现
  • 已有Python算法在Java系统中的复用

2.5 REST API与Python的双向通信实战

在现代Web服务架构中,Python常作为后端脚本语言与REST API进行数据交互。使用requests库可轻松实现HTTP请求的发送与响应处理。
发起GET请求获取远程数据
import requests

response = requests.get("https://api.example.com/users", params={"page": 1})
if response.status_code == 200:
    users = response.json()
    print(users)
上述代码向指定API端点发起GET请求,params参数用于构建查询字符串,response.json()将JSON响应解析为Python字典。
使用POST提交数据到服务器
  • 设置请求头为Content-Type: application/json
  • 通过json=参数自动序列化数据并设置headers
  • 验证返回状态码确保操作成功
data = {"name": "Alice", "role": "developer"}
response = requests.post("https://api.example.com/users", json=data)
assert response.status_code == 201

第三章:自定义构建步骤与流水线DSL开发

3.1 实现可复用的Python驱动构建步骤

在构建自动化测试或爬虫系统时,实现可复用的Python驱动是提升开发效率的关键。通过封装通用配置和初始化逻辑,能够显著降低后续模块的接入成本。
驱动初始化封装
将浏览器选项、启动参数及等待策略统一管理,避免重复代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def create_driver(headless=False):
    options = Options()
    if headless:
        options.add_argument("--headless")
    options.add_argument("--no-sandbox")
    options.add_argument("--disable-dev-shm-usage")
    driver = webdriver.Chrome(options=options)
    driver.implicitly_wait(10)
    return driver
上述代码中,create_driver 函数支持无头模式切换,implicitly_wait 确保页面元素加载的稳定性,提升脚本鲁棒性。
配置项分离管理
使用配置字典或外部文件(如JSON/YAML)维护不同环境的驱动参数,便于跨项目复用与维护。

3.2 扩展Declarative Pipeline语法支持

Jenkins的Declarative Pipeline提供了结构化和可读性强的CI/CD定义方式,但面对复杂场景时需扩展其语法能力。
自定义指令与共享库
通过Jenkins共享库机制,可在`vars/`目录下定义全局变量,实现跨Pipeline复用。例如:

// vars/myCustomStep.groovy
def call(String message) {
    echo "自定义步骤: ${message}"
}
该代码定义了一个名为`myCustomStep`的可调用函数,在Pipeline中可通过myCustomStep("开始构建")直接调用,增强脚本灵活性。
扩展Directive支持
Declarative Pipeline允许通过插件或脚本扩展options、triggers等directive行为。结合@Symbol注解可注册新语法节点,使配置更语义化。
  • 支持动态参数注入
  • 实现环境感知的执行流控制
  • 集成外部配置中心进行策略管理

3.3 参数化构建任务与动态配置绑定

在持续集成系统中,参数化构建是提升任务复用性与灵活性的核心机制。通过外部输入动态控制构建行为,可实现多环境、多分支的统一构建流程。
参数化构建的实现方式
Jenkins 等 CI 工具支持通过 UI 或 Pipeline 脚本定义参数。常见参数类型包括:
  • String:字符串输入,用于指定版本号或标签
  • Boolean:布尔值,控制开关逻辑
  • Choice:下拉选项,限制合法输入范围

pipeline {
    parameters {
        string(name: 'VERSION', defaultValue: '1.0', description: 'Build version')
        booleanParam(name: 'DEBUG_BUILD', defaultValue: true, description: 'Enable debug mode')
        choice(name: 'DEPLOY_ENV', choices: ['dev', 'staging', 'prod'], description: 'Target environment')
    }
    stages {
        stage('Build') {
            steps {
                echo "Building version ${params.VERSION}"
                script {
                    if (params.DEBUG_BUILD) {
                        sh 'make debug'
                    } else {
                        sh 'make release'
                    }
                }
            }
        }
    }
}
上述脚本定义了三个可配置参数,并在构建阶段通过 ${params.PARAM_NAME} 动态引用。参数化不仅解耦了流程与配置,还支持通过 API 触发时传入不同值,实现自动化调度的精准控制。

第四章:插件安全、测试与部署优化

4.1 权限控制与沙箱机制的安全实践

在现代应用架构中,权限控制与沙箱机制是保障系统安全的核心防线。通过最小权限原则,确保每个组件仅拥有完成其功能所必需的权限。
基于角色的访问控制(RBAC)实现
// 定义用户角色与权限映射
type Role string

const (
    Admin  Role = "admin"
    User   Role = "user"
    Guest  Role = "guest"
)

// 检查角色是否具备操作权限
func HasPermission(role Role, action string) bool {
    permissions := map[Role][]string{
        Admin: {"read", "write", "delete"},
        User:  {"read", "write"},
        Guest: {"read"},
    }
    for _, perm := range permissions[role] {
        if perm == action {
            return true
        }
    }
    return false
}
该代码实现了简单的RBAC模型,通过预定义角色与权限的映射关系,限制不同角色可执行的操作,降低越权风险。
容器化沙箱中的资源隔离
资源类型限制策略实现方式
CPU限制使用配额cgroups
内存设置最大用量cgroups
文件系统只读挂载chroot + 命名空间

4.2 单元测试与集成测试自动化策略

在现代软件交付流程中,测试自动化是保障代码质量的核心环节。单元测试聚焦于函数或类的独立验证,而集成测试则关注模块间的交互正确性。
测试层级职责分离
  • 单元测试应覆盖核心逻辑,运行快速且不依赖外部系统
  • 集成测试验证数据库、API、消息队列等跨组件协作
自动化执行策略
// 示例:Go 中使用 testing 框架编写单元测试
func TestCalculateTax(t *testing.T) {
    result := CalculateTax(100, 0.1)
    if result != 10 {
        t.Errorf("期望 10,得到 %f", result)
    }
}
该测试验证税率计算函数的正确性,输入为金额与税率,输出应精确匹配预期值,确保业务逻辑无偏差。
持续集成中的测试触发
阶段执行测试类型工具示例
提交后单元测试JUnit, pytest
部署前集成测试Selenium, Postman

4.3 插件打包、发布与版本管理流程

插件的生命周期管理始于打包,终于版本控制。规范的流程确保插件在不同环境中的可移植性与稳定性。
打包流程
使用构建工具将源码、依赖及元信息整合为标准包。以 npm 插件为例:
{
  "name": "my-plugin",
  "version": "1.0.0",
  "main": "index.js",
  "files": ["dist/", "README.md"]
}
该配置定义了插件名称、入口文件和需包含的资源目录,files 字段明确打包范围,避免冗余文件上传。
发布与版本控制
通过 CI/CD 流程自动化发布,结合 Git Tag 触发语义化版本(SemVer)更新。常见流程包括:
  • 提交代码并打标签(如 v1.0.1)
  • CI 系统验证测试并通过后自动构建
  • 推送至私有或公共仓库(如 npm、Maven Central)
版本管理策略
版本号含义
1.0.0初始稳定版本
1.1.0新增向后兼容功能
1.0.1修复缺陷,无功能变更

4.4 性能监控与内存泄漏防范技巧

实时性能监控策略
在高并发系统中,持续监控应用的CPU、内存、GC频率等指标至关重要。可集成Prometheus + Grafana实现可视化监控,同时通过自定义指标暴露关键业务节点性能数据。
内存泄漏常见场景与检测
Go语言虽具备GC机制,但仍可能因不当引用导致内存泄漏。典型场景包括未关闭的goroutine、全局map缓存未清理、context泄漏等。

// 示例:使用pprof进行内存分析
import _ "net/http/pprof"
import "net/http"

func init() {
    go func() {
        http.ListenAndServe("localhost:6060", nil)
    }()
}
该代码启用pprof服务,可通过访问 http://localhost:6060/debug/pprof/heap 获取堆内存快照,结合go tool pprof分析内存分布。
  • 定期触发手动GC并观察内存释放情况
  • 使用runtime.ReadMemStats记录内存状态变化
  • 避免长生命周期对象持有短生命周期数据引用

第五章:未来展望与生态融合方向

跨平台服务网格的统一治理
随着微服务架构的普及,多运行时环境(如 Kubernetes、Serverless、边缘节点)并存成为常态。未来服务治理将依赖于统一的服务网格控制平面,实现跨平台策略同步。例如,通过 Istio 的 Gateway API 与 Open Policy Agent(OPA)集成,可实现细粒度访问控制:
apiVersion: gateway.networking.k8s.io/v1alpha2
kind: HTTPRoute
metadata:
  name: api-route
spec:
  hostnames:
    - "api.example.com"
  rules:
    - matches:
        - path:
            type: Exact
            value: /v1/users
      filters:
        - type: ExtensionRef
          extensionRef:
            group: policy.openpolicyagent.org
            kind: OPAConstraint
            name: require-jwt-claim
AI驱动的自动化运维闭环
智能运维(AIOps)正从告警聚合向根因分析与自愈演进。某金融客户部署 Prometheus + Cortex + ML 模型栈,实现磁盘故障预测。其数据流如下:
  1. 采集节点指标(IOPS、温度、坏道数)
  2. 通过 Kafka 流式传输至特征存储
  3. 加载预训练的 XGBoost 模型进行实时评分
  4. 当风险概率 > 0.95 时触发自动迁移 Pod 并通知更换硬件
该方案使存储类故障平均响应时间从 47 分钟缩短至 3 分钟。
云边端协同的数据处理范式
在智能制造场景中,产线终端每秒生成 TB 级传感器数据。采用分层处理架构可显著降低带宽成本:
层级计算能力处理任务数据留存周期
终端层嵌入式 MCU异常脉冲检测24 小时
边缘层GPU 边缘服务器振动频谱分析7 天
云端分布式集群设备寿命建模长期归档

相关推荐

Claude Code工程化落地:VS Code+Jenkins+Node.js人机协同编码工作流

Claude Code并非普通AI编程插件,而是需深度嵌入现代前端/后端开发链路的智能协作者。其核心原理在于上下文建模——通过CLAUDE.md定义项目语义、.claudeignore精准控制文件可见性、Git Blame集成获取协作历史,从而让AI理解`useAuthStore()`而非仅识别函数名。技术价值体现在将‘无效代码’转化为可审查、可测试、可上线的交付行数,显著降低CI失败率与人工返工成本。典型应用场景覆盖VS Code本地智能重构、CLI驱动的终端自动化、Jenkins流水线中自动生成单元测试

weixin_34248487的博客 417

软件测试基础二十七 (接口测试 Jenkins)

软件测试基础之接口测试 Jenkins

m0_64598636的博客 2128

CentOS 7 SSH密钥配置实战:从VS Code远程开发到等保合规

SSH密钥认证是现代Linux系统远程访问的基础安全机制,其核心基于非对称加密原理,通过公私钥配对实现身份验证,彻底替代易受暴力破解的密码登录。相比传统口令,密钥具备数学级安全性、不可预测性与设备绑定特性,显著降低SSH爆破风险。该技术广泛应用于DevOps自动化部署、VS Code Remote-SSH远程开发、Git免密操作等工程场景,并成为等保2.0中远程管理通道‘双因子认证’的关键落地方式。本文聚焦CentOS 7这一长期支持且广泛用于教学与测试的发行版,详解RSA 4096密钥生成、服务端权限加固

weixin_33829657的博客 453

使用Python操作Jenkins

大家好,Python作为一种简洁、灵活且功能丰富的编程语言,可以与各种API轻松集成,Jenkins的API也不例外。借助于Python中的python-jenkins模块,我们可以轻松地编写脚本来连接到Jenkins服务器,并执行各种操作,如创建、删除、构建Jobs等。这种自动化的方式不仅提高了效率,还使得CI/CD流程更加灵活和可控。

若不知道要驶向哪个码头,那么任何风都不会是顺风。 5987

Docker镜像生产优化:Multi-stage构建与Alpine选型实战

Docker镜像是容器化应用的交付基石,其体积、安全性和运行时兼容性直接决定生产环境的稳定性与可观测性。理解镜像分层机制与Linux运行时原理,是实施优化的前提;Multi-stage构建通过物理隔离构建与运行环境,显著缩减镜像体积并收窄攻击面;而Alpine虽以极致轻量著称,但musl libc与glibc的ABI不兼容性,常导致Python/Node.js等动态链接语言在编译、DNS解析或扩展加载时失败。因此,生产实践中需基于应用语言特性选择基础镜像——Go/Rust宜用Alpine,Python/Ja

weixin_30335353的博客 468

国内AI平台Plan机制深度解析:Coding/Agent/Token三类订阅技术本质

AI平台的‘Plan’已从简单计费单位演变为融合模型能力、调度策略与权限控制的技术封装单元。其底层涉及语义理解引擎、动态缓存网关、安全沙箱、工作流编排器及Token计数差异等关键技术原理,直接影响开发效能、系统稳定性与成本可控性。作为当前企业AI工程化落地的核心载体,Plan机制决定了代码补全准确率、Agent长周期记忆可靠性、长文本处理上下文利用率等关键指标。本文基于200人研发团队真实负载场景,实测火山、MiniMax、智谱等主流平台在Coding Plan、Agent Plan和Token Plan三

culh2177的博客 705

Python项目持续交付实战:从零搭建自动化部署流水线

持续交付(Continuous Delivery)是现代软件开发的核心实践,它通过自动化构建、测试和部署流程,确保代码始终处于可发布状态。其原理在于建立一套标准化的“质检与物流”系统,每当代码变更时自动触发流水线,依次执行代码检查、多层级测试、安全扫描等环节,最终生成可部署的制品。这一实践的技术价值在于显著提升交付效率、降低人为错误风险,并增强团队对变更的信心。在Python开发领域,结合Docker容器化技术,能够有效解决环境不一致和依赖冲突问题,实现应用的一次构建、处处运行。无论是Web后端、微服务还是

weixin_33924220的博客 389

Mythos Preview:首个实现攻击链闭环的AI安全模型

网络安全AI正从静态代码扫描迈向动态攻击链建模。随着大模型在漏洞发现、利用构造与验证闭环中的能力突破,'发现—理解—构造—验证—交付'已不再依赖人工串联。Mythos Preview作为首个将终端交互成功率、SWE-bench Pro分数与真实CTF实测trace深度耦合的模型,标志着AI安全能力从规则匹配升级为因果推理。其核心价值在于对系统上下文(如内核源码、OAuth配置、SELinux策略)的语义级理解,支撑DevSecOps左移、SOC告警研判与红蓝对抗等关键场景。本文聚焦该模型在真实渗透测试中的攻

weixin_30437847的博客 281

突破传统静态分析限制:Semgrep高性能代码安全扫描引擎深度解析

在当今快速迭代的开发环境中,代码安全扫描面临着多语言支持不足、规则编写复杂、扫描性能低下三大核心挑战。Semgrep作为新一代轻量级静态分析工具,通过创新的AST模式匹配技术,实现了对20+编程语言的高效安全扫描,为开发者提供了简单易用且功能强大的代码安全保障方案。 ## 挑战:传统静态分析工具的局限性 传统的静态分析工具往往面临以下困境:⇒ 语言支持有限,无法覆盖现代多语言技术栈 ⇒ 规则编

gitblog_01060的博客 395

Java技术变现新路径:基于JVM生态的工程化赚钱模型

Java作为一门成熟语言,其核心价值已从语法特性升维为JVM生态所承载的稳定性、向后兼容性与企业级信任背书。在等保合规、遗留系统现代化和垂直领域工具链等刚性需求驱动下,Java凭借字节码增强、Java Agent、ClassLoader热加载等原生能力,成为构建合规即服务(Compliance-as-a-Service)、遗留系统缝合层及微型SaaS的关键技术底座。它不追求性能极限,而以‘可审计、可验证、零改造集成’满足法务签字、运维背书与终端用户习惯三重决策节点。本文聚焦Java在2025年中小企业技术变

weixin_30378623的博客 407

Mythos模型:AI驱动的自动化漏洞挖掘与安全范式重构

AI安全模型正从辅助工具演进为自主攻防主体,其核心在于将软件系统建模为可微分状态机,结合静态分析、符号执行与强化学习实现端到端漏洞发现。Mythos代表了这一代际跃迁,它不再依赖规则匹配或人工提示,而是通过跨层语义推理(如协议逆向、内存布局推演、控制流扭曲分析)重构漏洞定义本身。这种能力已突破传统SWE-bench Pro和CyberGym基准,在RCE级利用链生成、零日挖掘及长程攻击规划中展现工程级可靠性。其技术价值不仅体现于高检出率,更在于倒逼开发者转向‘可辩护代码’实践,并推动安全运营从周期性渗透转向

weixin_34384681的博客 367

企业级AI编程工具选型:安全可控与合规嵌入的深度解析

AI编程工具已从个人效率插件演进为研发治理体系的关键基础设施。其核心原理在于将大模型能力与企业私有知识、编码规范、安全策略深度融合,通过本地化索引、规则引擎驱动和全链路审计,实现代码生成过程的可追溯、可约束、可治理。技术价值不仅体现为补全速度提升,更在于阻断‘正确但违规’的高危输出,支撑等保三级、信创替代、数据不出域等强监管要求。典型应用场景覆盖政务云合规开发、金融系统安全重构、制造业研发中台治理等。本文聚焦Trae等主流工具在私有化部署、RAG架构、语义图谱索引等关键维度的真实能力边界与落地实践。

weixin_34269583的博客 907

Shipit自动化部署Node.js到CentOS 7实战指南

Node.js应用部署本质上是将代码、运行时与系统服务协同编排的过程;其核心原理在于通过声明式任务管理SSH远程执行流程,保障环境一致性与操作原子性;技术价值体现在消除手工运维误差、实现可审计回滚与最小权限安全控制;典型应用场景包括老旧Linux服务器(如EOL的CentOS 7)上的生产级发布、内网离线环境的Node.js二进制分发,以及基于PM2/systemd的进程生命周期管理;本文聚焦Shipit这一轻量级SSH原生部署工具,深入解析其任务抽象、钩子机制与SELinux/firewalld等企业级系

weixin_34088583的博客 424

Codex CLI国内实战指南:基于Node.js与MCP协议的本地化AI编码助手

CLI(命令行接口)是开发者自动化与集成的核心载体,其本质是将复杂能力封装为可组合、可脚本化的标准进程;MCP(Model Communication Protocol)作为模型通信的抽象协议,解耦了前端工具与后端大模型的强绑定关系,使调用逻辑从‘适配服务商’转向‘遵循统一格式’;这种架构显著提升了国产模型(如DeepSeek-Coder、通义千问)在受限网络环境下的可用性与可控性,广泛应用于代码解释、JSDoc生成、智能Lint及测试用例编写等工程场景;本文聚焦于Node.js生态下Codex CLI的零

adiking520110的博客 404

【信息科学与工程学】【数据科学】第一百五十五篇 数据集成与开发02

​。

weixin_49199313的博客 23

【信息科学与工程学】【通信工程】第八十六篇 通信网络设备及通信网络组网的所有学科知识01

编号001类型网络虚拟化与覆盖技术网络领域数据中心网络子领域大二层网络 / 网络虚拟化核心数学方程式/算法模型核心算法:VXLAN封装与解封装。关键在于24位VNI(虚拟网络标识符)到物理网络的三层IP地址的映射。封装:收到原始以太帧后,为其添加 VXLAN 头部(含 VNI)、外层 UDP 头(目的端口 4789)、外层 IP 头(源 IP 为本地 VTEP IP,目的 IP 为对端 VTEP IP)以及外层 MAC 头。解封装:对端 收到报文后,剥离外层头部,根据内层帧的目的 MAC 和 VNI 进行二

weixin_49199313的博客 844

【信息科学与工程学】【数据中心】第三十五篇 云计算数据中心的学科知识04

编号学科(课程)核心知识点在云计算/云存储/云网络/云安全/云MaaS中的作用代表教材/资料/论文 + 数学方程式列表工业界应用D1421​云原生数据库:TiDB​HTAP(混合事务/分析处理)、分布式SQL、水平扩展、强一致(Raft)、自动故障恢复、与MySQL兼容、TiFlash列式引擎提供弹性扩展的分布式数据库;支撑高并发在线交易与实时分析教材:《TiDB in Action》PingCAP(2020) 论文:《TiDB: A Raft-based HTAP Database》(2017)

weixin_49199313的博客 409

Ubuntu18.04 SoftRoCE安装教程

目标:创建两台Ubuntu18.04虚拟机,安装SoftRoCE环境,一台作为Server,一台作为Client,模拟RDMA通信环境,熟悉RDMA的通信方式。

GGGYL111的博客 1551
上一篇: Docker与K8s网络配置难题一网打尽:Python脚本实战指南(稀缺干货)
下一篇: 从零构建企业级监控系统,手把手教你写高性能Python监控脚本
DevPath
博客等级 码龄1年 179粉丝 2176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值