主题
概念卡片:中间件 ARM 架构兼容矩阵
一句话结论:13 类中间件里 11 类有原生 ARM 方案(官方 aarch64 产物或纯 JVM 免适配),只有 Greenplum 无官方 ARM 发行版,Harbor 是 2026-05 才刚进上游的"新支持"。 但真正卡脖子的不是"能不能装上",而是**"跑起来了却不在厂商支持矩阵里"——银河麒麟 V10(glibc 2.28 / 内核 4.19)未出现在 MongoDB、Elastic、Redis 官方 OS 清单上,这类组合属于可运行、不保修**。
1. 四档就绪度总表(2026-08-31 核对)
| 档位 | 含义 | 组件 |
|---|---|---|
| 🟢 原生支持 | 官方发布 aarch64 产物,或纯 JVM 无架构绑定 | PostgreSQL、MongoDB、Redis(开源版)、Elasticsearch、ClickHouse、Kafka、RocketMQ、ZooKeeper、Docker、KingbaseES、ELK(ES/Kibana/Logstash/Beats) |
| 🟡 有条件 | 支持存在但版本/平台受限,或上游刚合入需挑版本 | Harbor(v2.14+ 上游 arm64,此前靠社区构建) |
| 🔴 无官方支持 | 厂商只出 x86_64 二进制,ARM 需自编译或换型 | Greenplum |
按"落地工作量"排序看得更清楚:
| 组件 | 就绪度 | 官方 aarch64 产物 | 硬性版本/平台门槛 | 风险点 |
|---|---|---|---|---|
| KingbaseES | 🟢 最优 | V9 发 Aarch64_install.iso / Kunpeng64_install.iso(鲲鹏920 专用);V8R6C8B14 已列 飞腾2000+/S2500、鲲鹏920 + 银河麒麟V10/UOS | 选包要对齐 CPU 型号,鲲鹏优先用 Kunpeng64 包 | 无(唯一"国产芯片一等公民") |
| PostgreSQL | 🟢 | PGDG apt 含 arm64 架构;yum 有 EL-7-aarch64 / EL-8-aarch64 源(华为云捐赠 arm64 构建机) | 麒麟走 PGDG tgz 或麒麟源 | 麒麟 V10 不在 PGDG OS 清单 → 自担支持 |
| Elasticsearch | 🟢 | 自 7.12+ 起 aarch64 与 x86_64 同等对待;docker.elastic.co 现提供 9.5.x-arm64 与多架构 tag | ≥7.12 | 国产 OS 不在订阅支持矩阵 |
| Kibana | 🟢 | 自 7.10+ 支持 aarch64 | ≥7.10 | PNG/PDF 报表依赖 headless Chromium,ARM 上依赖易缺 |
| Logstash | 🟢 | 自 7.14+ 支持 aarch64(Linux) | ≥7.14 | 同上,且自带 JDK 需匹配 |
| Beats(Filebeat/Metricbeat 等) | 🟢 | 官方 beats:9.5.0-arm64 镜像,全系 aarch64 | — | 少量 input/集成非全平台可用 |
| MongoDB | 🟢 有硬门槛 | 官方 arm64 包:Ubuntu 20.04/22.04/24.04 arm64、RHEL/Rocky/Alma 8/9 arm64、Amazon Linux 2023 arm64 | ARMv8.2-A 起(5.0+ 强制);用 ARMv8.4-A 需 ≥7.0 | 麒麟 V10 不在官方 OS 矩阵 → 走通用 tgz 自担支持 |
| ClickHouse | 🟢 但支持级别低一档 | AArch64 自 22.3 LTS 起生产就绪(CI 跑 100% 功能测试,deb/rpm/tgz/docker/单二进制齐全) | 官方支持矩阵中 Linux AArch64 属 Additional Platform(仅 Severity 3 + 单二进制),x86_64 才是 Full Support | ARM 上禁用 Hyperscan、无 PMU 硬件指标、不含 gRPC;不建议混合架构集群 |
| Redis(开源版) | 🟢 | Docker 官方镜像含 arm64v8(架构列表 amd64/arm64v8/ppc64le/s390x…) | 源码编译最通用(麒麟常用 5.0.14 / 6.2.x) | 6.2.x 在麒麟需补 libatomic1 |
| Redis Software(企业版) | 🟡 | 8.0.10(2026-02)才支持 ARM | 仅 RHEL 9 与 Ubuntu 22.04;RHEL 8 / Ubuntu 20 不支持 | 选 OS 前先查表,容易踩空 |
| Kafka | 🟢 免适配 | 纯 Java,无架构绑定 | 需 aarch64 JDK(Kafka 3.1+ 支持 JDK17) | 实测组合:麒麟V10 SP3 + 鲲鹏920 + 毕昇JDK17 + Kafka 3.5.1 KRaft |
| RocketMQ | 🟢 免适配 | 纯 Java | 需 aarch64 JDK | 麒麟 V10 的 glibc(2.27/2.28)与 Netty native .so 易冲突;老版本 runbroker.sh 的 UseG1GC 在 JDK8 下报 experimental 需删行 |
| ZooKeeper | 🟢 免适配 | 纯 Java | 需 aarch64 JDK | 更优解:能去掉就去掉(Kafka KRaft / ClickHouse Keeper) |
| Docker | 🟢 | Docker Engine 官方提供 aarch64 包(RHEL/CentOS/Ubuntu) | — | 信创场景可换 iSula/containerd(欧拉/麒麟源);镜像必须是多架构 manifest |
| Harbor | 🟡 | 上游 arm64 自 PR #22311 合入(2026-05-12)起,v2.14+ 发布 arm64 在线/离线包 + 多架构镜像;此前需社区构建(liuli-ke/harbor-arm64、wise2c/build-harbor-aarch64) | ≥ v2.14 才有官方 arm64 产物 | 组件链上任一基础镜像(Photon、Valkey)非多架构即失败 |
| Greenplum | 🔴 | 官方只出 x86_64 二进制,VMware/Broadcom 与各家发行商均无 ARM 版 | — | 三条路见 §2 |
2. 三个"要动手"的组件
2.1 Harbor —— 版本选错就白干
- ≥ v2.14:直接用官方
harbor-offline-installer-<ver>-arm64.tgz,docker pull同一 tag 自动解析到 arm64。 - < v2.14:用社区构建(GitHub
liuli-ke/harbor-arm64、Docker Hubliulik/harbor_aarch64_images),或make generate_offline_bundle BUNDLE_ARCH=arm64自构建。 - 注意 Harbor 是分布式应用(Core/JobService/Registry/Trivy/Valkey/PostgreSQL/Nginx),任何一个基础镜像不支持多架构,整条链就断。
2.2 Greenplum —— 唯一没有官方 ARM 的
三条路,按推荐度排序:
- 换国产 MPP(推荐):GBase 8a 明确适配鲲鹏/飞腾/申威/龙芯 + 麒麟/统信;GaussDB(DWS) 支持 x86 与 ARM 服务器。
- 鲲鹏移植指南:鲲鹏社区提供 Greenplum 5.11.3 / 6.0.0 / 6.12.1 在 openEuler 20.03/22.03、CentOS 7.6/8.1(ARM)上的移植文档。
- 源码编译(成本最高):EulerOS/openEuler + aarch64 下编译 GP 6.x,ORCA 优化器部分需改指令集相关代码,坑多、无官方保修。
决策判据:要厂商兜底 → 选 1;已有 GP 应用且能自维护 → 选 2;纯 POC → 选 3。
2.3 Redis / ClickHouse —— "能跑"和"有人兜底"是两件事
- Redis 开源版无限制,但 Redis Software 的 ARM 支持是 2026-02 才有的,且只认 RHEL 9 / Ubuntu 22.04。
- ClickHouse 的 AArch64 在官方支持矩阵里是 Additional Platform(Severity 3、仅单二进制),签商业支持前必须确认这一级别能否接受。
3. 麒麟 ARM 环境的五个通用坑
| # | 坑 | 表现 | 处理 |
|---|---|---|---|
| 1 | x86 JDK 混入 | Exec format error、JVM 起不来 | 统一装 aarch64 JDK(毕昇 JDK 17 for 鲲鹏,或麒麟源 openjdk aarch64),java -version 确认含 aarch64 |
| 2 | glibc 基线低 | 麒麟 V10 的 glibc 2.27/2.28 加载高版本编译的 .so 失败 | 不升级 glibc(合规要求,且会破坏系统 ABI);改用按低基线构建的包,或源码编译 |
| 3 | JNI / native 库 | Netty native transport、RocketMQ 客户端 native 库在 ARM 上成为唯一架构相关件 | 加 -Dio.netty.noUnsafe=true 走纯 Java 路径;或换同版本 aarch64 构建 |
| 4 | CPU 特性门槛 | MongoDB 5.0+ 强制 ARMv8.2-A,低版本 ARM 直接不支持 | 交付前用 lscpu + 厂商规格核对 CPU 微架构;老 ARM 板子(如树莓派类)直接排除 |
| 5 | 镜像架构不符 | WARNING: The requested image's platform does not match 或 exec 报错 | 拉镜像核对 docker inspect 的 Architecture;离线场景用 arm64 离线包,不靠 QEMU 模拟 |
4. 落地核对清单(5 步)
- 清点硬件:
lscpu+cat /etc/os-release+ldd --version,确认 CPU 型号(鲲鹏920 / 飞腾 S5000C / D2000)、OS 版本、glibc 版本。 - 按表分档:🟢 直接上官方 aarch64 包;🟡 先定版本(Harbor ≥2.14);🔴 走替换或编译。
- 逐项查 OS 是否在厂商支持矩阵:不在矩阵 ≠ 不能用,但要在方案里写明"自担支持",并预留回退(如 PostgreSQL → KingbaseES)。
- 统一 JDK 基线:全栈统一 aarch64 JDK 版本(建议毕昇 JDK 17 或麒麟源 OpenJDK 17),避免多 JDK 混装。
- 先做最小验证:单节点起服务 → 跑一次真实读写/推送/查询 → 再上集群;把 ARM 特有参数(G1GC、noUnsafe、libatomic)写进部署手册。
5. 证据与时效
| 结论 | 官方来源 | 核对日期 |
|---|---|---|
| ES 7.12+ / Kibana 7.10+ / Logstash 7.14+ 支持 aarch64 | Elastic Support Matrix(最后更新 2026-05-05) | 2026-08-31 |
ES/Beats 现提供 9.5.x-arm64 多架构镜像 | docker.elastic.co 镜像标签页 | 2026-08-31 |
| MongoDB arm64 平台清单 + ARMv8.2-A 门槛 | MongoDB Supported Platforms / Production Notes | 2026-08-31 |
| ClickHouse AArch64 自 22.3 生产就绪;AArch64 为 Additional Platform | ClickHouse 22.3 LTS Release Blog / Supported Platforms | 2026-08-31 |
| Redis Software 8.0.10(2026-02)起支持 ARM,限 RHEL9/Ubuntu22.04 | Redis 硬件要求页 / 8.0.10 Release Notes | 2026-08-31 |
| Harbor 上游 arm64 = PR #22311(2026-05-12 合入) | Arm Community Blog: Bringing Harbor to Arm Neoverse | 2026-08-31 |
| KingbaseES V9 提供 Aarch64 / Kunpeng64 安装包 | KingbaseES V009R001C010 发行说明(2025-06-30);V8R6C8B14 支持平台表 | 2026-08-31 |
| PGDG apt/yum 含 arm64 | apt.postgresql.org 架构声明;pgyum aarch64 公告 | 2026-08-31 |
| Greenplum 无官方 ARM 发行版;鲲鹏提供移植指南 | 鲲鹏 BoostKit Greenplum 移植指南(5.11.3/6.0.0/6.12.1) | 2026-08-31 |
⚠️ 时效性:ARM/信创生态变化快,Harbor 与 Redis Software 的 ARM 支持都是 2026 年上半年才落地。复用本卡前请重查对应厂商的支持矩阵页。
关联
upstream:本次为 Query 回灌,无单一原始资料页(证据见 §5)related:信创国产化替代、国产数据库选型测评方法论、PostgreSQL信创替代选型、KingbaseES集群技术栈总览- 上层索引:A00-百科/README、信创与国产化
- 操作日志:log