Github Action 自托管服务器踩坑记录
Github Action 自托管服务器踩坑记录
我们的一个项目中使用 Github Action 来进行 CI/CD, 我们的痛点在于 Github Action 提供的缓存存储限制在10G, 而我们某个 job 的缓存比较大, 大约是 3.6G, 再加上别的缓存, 导致存储空间不够, 最终导致CI运行失败. 所以我们希望构建自托管服务器来解决这个问题. 其实一开始考虑的是能不能升级配置, 但是没找到能升级缓存存储大小的办法.
问题如图:
配置过程
使用 Terraform 配一台服务器, 使用的是阿里云, 具体配置如下, 可以参考
main.tf
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081locals { vpc_id = alicloud_vpc.vpc.id vswitch_ids = ...
Terraform初体验:配置腾讯云CVM
Terraform初体验:配置腾讯云CVM
首先明确目标:学习Terrafom, 并在腾讯云上成功配置一台CVM
安装Terraform
直接去官网Install页面按照指示安装即可
看看是否安装成功
12345terraform -version# 我的输出Terraform v1.13.3on windows_amd64
获取凭证
前往 云 API 密钥页面 申请安全凭证 SecretId 和 SecretKey。
登录 访问管理控制台,在左侧导航栏,选择访问密钥 > API 密钥管理。
在 API 密钥管理页面,单击新建密钥,即可以创建一对 SecretId/SecretKey。
可以新建一个子用户然后再来创建API密钥
使用方式主要有两种, 一种是静态凭证鉴权, 直接在配置文件中写入, 另一种是环境变量鉴权, 通过配置环境变量来获取, 为了演示, 我选择静态凭证鉴权
配置Terraform
基本使用文档可以参考官方文档
虽然说所有配置都是可以写在一个main.tf文件中, 但是这不符合最佳实践, 为了方便管理, 官方建议使用多个文件来管理配置, 所以我们创建一个目录 ...
RobustMQ初体验
RobustMQ初体验
一开始疯狂踩坑, 一大原因是服务器是centos 7.9版本的, 有点太旧了, 后来改用ubuntu 24.04就很丝滑, 建议早日放弃老古董doge
进入RobustMQ v0.2.0-RELEASE下载合适的版本, 我的服务器是x86_64架构的, 所以下载Linux AMD64 (robustmq-v0.2.0-RELEASE-linux-amd64.tar.gz)这个版本, 上传到服务器上
安装以及基本功能
解压
12tar -xzf robustmq-v0.2.0-RELEASE-linux-amd64.tar.gzcd robustmq-v0.2.0-RELEASE--linux-amd64
quick start
1./bin/robust-server start
是否启动成功
123456789101112131415161718192021./bin/robust-server status#如下 ╭──────────────────────────────────────────────────────────────── ...
CI配置时使用Makefile有哪些好处?
CI配置时使用Makefile有哪些好处?
一、什么是 Makefile?
Makefile 本质上是一个包含了一系列规则的文件。这些规则定义了如何编译和链接程序,每一个规则都由以下三个部分组成:
目标(Target): 想要生成的文件或想要执行的操作的名称,比如 install、test、clean 等。
依赖(Prerequisites): 为了生成目标,所需要依赖的文件或其他目标。
命令(Commands): 为了通过依赖来生成目标所需要执行的 shell 命令。
一个 Makefile 的基本结构如下:
123target: prerequisite1 prerequisite2 command1 command2
关键特性:
自动化: make 工具会自动读取 Makefile 并执行指定的命令,从而自动化编译、测试、部署等一系列任务。
抽象化: 可以将复杂的、多步骤的 shell 命令封装在一个简单的 make 命令背后。例如,make test 可能包含了安装依赖、启动数据库、运行测试套件、生成报告等多个步骤。
二、为什么在 CI 配置中使用 Ma ...
Windows通过Rust使用DuckDB碰到的问题
Windows通过Rust使用DuckDB碰到的问题
DuckDB的一些问题只在windows上有, macOS和Linux上没有, 所以记录一下
报错: error: linking with link.exe failed: exit code: 1120
具体报错如下:
1234567891011error: linking with `link.exe` failed: exit code: 1120 | = note: "D:\\cpptools\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "C:\\Users\\levit\\AppData\\Local\\Temp\\rustcjagjai\\symbols.o" "<72 object files omitted>" "D:\\RustProject\\swan-lake\\Playground\\duckdb-eval\ ...
Iceberg快速入门
Iceberg
为什么需要Iceberg/为什么需要Lakehouse
数据湖的最主要目的是为了解决Hive速度慢的问题, 利用表格式和索引实现细粒度的数据过滤. 数据湖可以将整个链路变为分钟级, 从离线链路转化为近实时链路并且提升查询速度. 当然, 数据湖还解决了一些其他问题, 如ACID, Schema Evolution, Partition Evolution, Time Travel等.
文件布局
具体查询流程就是从Catalog -> Table Metadata File -> Snapshot -> Manifest List -> Manifest File -> Data File. 如图所示
Catalog
Catalog 本质就是一个维护表元数据文件的目录(个人理解), 有多种实现方式:
HiveCatalog
Hive Metastore
表属性中key值为metadata_location的键值对
HadoopCatalog
文件系统
version-hint.text
JDBC Catalog
关系型数据库 ...





