hero image

朱帅

造轮子是我的快乐来源~

项目集
精选项目
ssh4p
SSH 管理工具
DataX CLI
DataX 命令行工具
Media Tools
音视频编辑工具
DevOps篇: 多节点部署 Jenkins

DevOps篇: 多节点部署 Jenkins

在软件开发过程中,持续集成和自动化构建是必不可少的环节。Jenkins作为一款优秀的CI/CD工具,被广泛使用。它支持众多插件和工具,能够自动化构建、测试和部署,实现持续集成和持续交付,提升软件开发效率和质量。

今天为大家介绍如何部署多节点Jenkins

为什么需要 Jenkins 多节点?

  1. 分布式构建:在多节点部署的情况下,可以将构建工作分配到不同的节点上去执行,从而实现加速构建、降低风险等目的。

  2. 大规模部署:在大规模的项目中,可能需要同时部署多个Jenkins节点,这样可以缓解任务压力,提高系统的可扩展性和鲁棒性。

  3. 不同操作系统支持:由于Jenkins可以在多个操作系统上运行,因此在多节点部署的情况下,可以针对不同的操作系统配置和管理不同的节点。

  4. 冗余:在多节点部署的情况下,如果某个节点发生故障,可以通过其他可用的节点来提供服务,并且不会停止整个Jenkins系统的运行。


xzcoder大约 8 分钟DevOps篇CI/CDJenkins
网络编程篇:VPN 原理与实战开发

网络编程篇:VPN 原理与实战开发

通过前面几篇文章介绍了网络编程的基础流程 和 VPN原理中的 Tun虚拟网络设备

本篇文章就带大家来实战开发一个简单的 VPN 程序~

背景介绍

网络拓扑图

如上图所示得到如下信息:


xzcoder大约 8 分钟网络编程篇VPN
初试微信公众号开发与对接 ChatGPT 接口

初试微信公众号开发与对接 ChatGPT 接口

上周公众号对接了 ChatGPT 接口,直接在公众号内即可与 ChatGPT 聊天。本文将整个对接的过程分享给大家

由于本人没有过公众号开发经验,所以先是直接百度了下「公众号对接 ChatGPT」,果然网上已经有简单案例了,代码如下:

import werobot
import openai

robot = werobot.WeRoBot(token="your_wx_token")
robot.config["HOST"] = "0.0.0.0"
robot.config["PORT"] = 9005

openai.api_key = "your_api_key"

@robot.handler
def handle(messages):
    completion = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": messages.content}]
    )
    return completion.choices[0].message.content

robot.run()

xzcoder大约 10 分钟ChatGPT
小白福利,关注公众号体验 ChatGPT!

小白福利,关注公众号体验 ChatGPT!

不知道大家最近是否和我一样,被 ChatGPT 刷屏了。打开手机全是 ChatGPT 相关的信息。 我也是跟风去体验了下 ChatGPT,确实是非常强大!

苦于 ChatGPT 的网络限制,很多人还没有体验过 ChatGPT,所以我给大家个福利,关注我的公众号就可以直接与 ChatGPT 进行对话啦~

效果图

聊天截图


xzcoder大约 1 分钟ChatGPT
网络编程篇:VPN 原理之 TUN/TAP 虚拟网络设备

网络编程篇:VPN 原理之 TUN/TAP 虚拟网络设备

相信大家在工作中都使用过 VPN,通过 VPN 可以让我们访问到公司局域网内部服务。 本篇文章为大家介绍 VPN 原理中的 TUN/TAP 虚拟网络设备,同时也是后续「手写VPN」教学的基础内容。

什么是 TUN/TAP ?

tun/tap 设备是操作系统内核中的虚拟网络设备,是用软件模拟的网络设备,提供与硬件网络设备完全相同的功能。主要用于用户空间和内核空间传递报文。 物理网卡与tun/tap虚拟网卡


xzcoder大约 5 分钟网络编程篇VPN
网络编程篇:基于请求/响应模式的事务设计

网络编程篇:基于请求/响应模式的事务设计

本篇文章会介绍 TCP 网络编程中如何实现类似 HTTP 协议「基于请求/响应」的数据包传输设计和实现,以及对前面文章讲到的 协议握手、粘包处理 等进行 API 封装,作为后续「网络编程篇」应用实战开发的基础库。

前文回顾

1. 网络编程代码结构

通过前面几篇文章的介绍,相信大家对网络开发的基础代码结构已有所了解,网络编程中分为服务端应用和客户端客户端应用。

服务端会监听某个TCP端口,等待客户端连接,当接收到客户端连接,为每个连接创建goroutine 来处理数据。


xzcoder大约 8 分钟网络编程篇
网络编程篇:解决TCP粘包问题

网络编程篇:解决TCP粘包问题

上篇文章我们介绍了如何开发最基础的TCP应用EchoServer回声服务器,由于EchoServer中都是字符串并按行分割消息并传输,所以使用了bufio.Reader中的ReadLine方法逐行读取网络消息。

而实际的网络应用开发中,我们很少会只进行字符串的传输。举例:分片传输文件需要传递的数据包有多种格式,如文件二进制数据、文件片分批次信息等,而这时就会遇到TCP粘包问题。

什么是粘包、拆包?


xzcoder大约 7 分钟网络编程篇
网络编程篇:TCP应用开发与握手设计

网络编程篇:TCP应用开发与握手设计

自从开始搭建了博客网站之后每天都在想写点什么,想了很久最终决定开启一个连续教学篇章「网络编程」

该篇章会从搭建简单的C/S架构应用开始,最终带着大家完成一个有意思的网络小应用(最终写啥还没想好,目前想到的有:简易RPC框架、VPN服务器、RTMP流媒体服务器),涉及编码的地方会用 Go(net库)、Java(Netty框架)来进行演示。

有什么想要实现的应用或是文章介绍时使用什么语言可以在下方给我评论哦~

提示

这篇文章会介绍最基础的网络编程应用Echo服务器来展示TCP协议服务端与客户端应用的基础开发流程。


xzcoder大约 7 分钟网络编程篇
GitHub Action 自动化部署博客网站

GitHub Action 自动化部署博客网站

上一篇文章已经介绍了博客项目搭建过程以及通过npm run deploy进行部署,但这仍需要有Node.js开发环境才行,而有时想通过手机简单编辑文章就无法进行发布。

这篇文章简单介绍下如何使用GitHub Actions进行自动化部署,这样即使通过手机GitHub在线编辑也可以自动发布啦😄

创建GitHub Actions Workflow

Actions => New workflow => 选择Node.js模版


xzcoder大约 2 分钟Blog
博客网站搭建

博客网站搭建

最近突然有了写博客的想法,于是搭建了自己的博客网站。第一篇博客就记录下搭建的过程~

技术选型

由于工作中经常使用markdown维护文档,所以想要博客也用markdown来进行维护。最终选择了vuepressvuepress-theme-hope主题。

链接:

  • vuepress: https://vuepress.vuejs.org/
  • vuepress-theme-hope: https://theme-hope.vuejs.press/

xzcoder大约 2 分钟Blog