GaGa's Blog

One GaGa, One World !

使用 GraalVM 将 Java 程序构建为原生可执行文件(Native Image)的过程,核心原理是利用提前编译(AOT, Ahead-of-Time Compilation)。它将 Java 字节码直接编译成特定操作系统和架构的机器码,运行时不再需要完整的 JVM。


1. 环境准备

要在本地构建 Native Image,除了 GraalVM 本身,还需要安装目标系统底层的 C++ 编译工具链。

Read more »

在较新版本的 GraalVM(特别是 GraalVM For JDK 17/21/22+ 以及与之配套的 Native Image Agent)中,输出结构做出了重大优化。

为什么只有这一个文件(resource-config.json)?

以前的 Agent 会分开生成 resource-config.jsonreflect-config.json 等独立文件。而新版 GraalVM 引入了 Reachability Metadata(可达性元数据) 的统一规范。

你看到的 reachability-metadata.json 实际上是一个合体文件(或者是包含多类配置的统一元数据描述)。

Read more »

一句话总结

函数 能做什么 返回值
eval() 求值单个表达式 表达式的计算结果
exec() 执行任意语句块 None
compile() 将源码编译为字节码对象 字节码对象(code object)

1. eval() — 表达式求值

Read more »

1. CentOS 8

  • 默认内核:4.18.x
  • 示例:4.18.0-305.el8.x86_64
  • 支持 5.x 系列需要安装 ELRepokernel-ml 或通过 AppStream 升级。
  • 说明:CentOS 8 原生采用 RHEL 8 的 4.18 内核

2. CentOS Stream 9 / RHEL 9

  • 默认内核:5.14.x
  • 示例:5.14.0-162.el9.x86_64
  • 说明:RHEL9 内核从 5.x 系列开始,CentOS Stream 9 保持跟进。
Read more »

1. 构建(Build)

构建通常指把源代码、依赖和配置整合成可部署的产物(Artifact),可分几个层次:

  • 源码管理层:Git、SVN 等管理版本。

  • 构建工具层

    • Java:Maven、Gradle
    • Python:setuptools、Poetry
    • Golang:Go Modules
  • CI/CD 层

    • Jenkins、GitLab CI、GitHub Actions、ArgoCD
    • 负责自动化编译、单元测试、打包、镜像构建等
  • 容器化

    • Docker、Podman,把构建产物封装为容器镜像
    • 镜像仓库管理:Harbor、Docker Hub、AWS ECR
  • 产物管理

    • Maven Repo、PyPI、npm、内部制品库
    • 保证构建可重复、版本可追溯

注意点

Read more »

Elasticsearch 从 7.x 开始提供 API Key 认证机制,用于替代 Basic Auth / Token,适用于服务间调用(尤其是 Agent / 微服务 / 自动化场景)。


1. 前置条件

1.1开启安全功能

Read more »

1. 创建 Kibana Token

1
2
3
curl -X POST "http://localhost:9200/_security/service/elastic/kibana/credential/token/kibana" \
-u elastic:321.321 \
-H "Content-Type: application/json"

也可以写成:

1
2
curl -X POST "http://localhost:9200/_security/service/elastic/kibana/credential/token/kibana?pretty" \
-u elastic:321.321
Read more »
0%