ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

TDengine 支持平台全解:服务端/客户端/连接器平台矩阵与安装构建的平台识别机制

TDengine 支持平台全解:服务端/客户端/连接器平台矩阵与安装构建的平台识别机制 TDengine 支持平台全解服务端/客户端/连接器平台矩阵与安装构建的平台识别机制【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengineTDengine 面向工业物联网IIoT场景在部署前必须确认操作系统与硬件架构是否在官方支持范围内。本文基于仓库中的《支持平台列表》文档完整梳理 v3.0.7.1 之后社区版的服务端支持平台矩阵、客户端与连接器C/C、JDBC、Python、Go、NodeJs、C#、Rust、REST API的平台覆盖情况并结合 安装脚本、CMake 平台探测逻辑 与网络层源码讲清 TDengine 是如何识别操作系统与 CPU 架构、以及 IPv4/IPv6 网络环境的实际支持能力帮助你在选型、部署和排障时快速判定“能否装、怎么装”。社区版支持范围的总体说明v3.0.7.1之后的社区版所支持的操作系统范围以本文档中的两张矩阵为准。如果使用国产操作系统官方建议使用企业版本或者使用 Docker 方式安装。社区版仅支持主流操作系统较新版本Ubuntu 18 / CentOS 7 / Debian / Fedora / FreeBSD / OpenSUSE / SUSE Linux / macOS 等。若有其他操作系统及版本需求需联系企业版支持。矩阵中的标记含义如下●经过官方测试验证○非官方测试验证E仅企业版支持服务端支持的平台列表TDengine 服务端taosd支持的操作系统及最低版本要求如下操作系统版本要求X64 64bitARM64CentOS7.9 以上●●Ubuntu18 以上●●RedHatRHEL 7 以上●●Debian6.0 以上●●FreeBSD12 以上●●OpenSUSE全部版本●●SUSE Linux11 以上●●Fedora21 以上●●Windows Server2019–2022● / E—Windows10/11● / E—银河麒麟V10 以上● / E● / E中标麒麟V7.0 以上● / E● / E统信 UOSV20 以上● / E—凝思磐石V8.0 以上● / E—华为欧拉 openEulerV20.03 以上● / E—龙蜥 Anolis OSV8.6 以上● / E—macOS14.0 以上—●从这张表可以读出三点关键信息x86_64 是服务端覆盖面最广的架构。主流 Linux 发行版在 x64 上均为官方验证通过●ARM64 在 CentOS/Ubuntu/RedHat/Debian/FreeBSD/OpenSUSE/SUSE/Fedora 上同样得到官方验证适合在国产 ARM 服务器上部署。Windows 平台没有 ARM64 列且部分场景标记为● / E即社区版验证通过但部分能力仅企业版提供国产操作系统银河麒麟、中标麒麟、统信 UOS、凝思磐石、openEuler、Anolis OS普遍标注E意味着这些平台的官方支持以企业版为主这也是文档开头提示“国产操作系统建议使用企业版或 Docker 方式”的原因。macOS 仅支持 ARM64 且要求 14.0 以上即 Apple SiliconM 系列环境社区版在该平台上的定位偏向开发测试。安装脚本如何识别当前操作系统上述支持矩阵并非“口头承诺”安装脚本中有对应的操作系统识别与分发逻辑。get_os.sh 通过读取/etc/*-release中的NAME字段macOS 直接判定为 Darwin输出发行版名称供上层构建/安装流程使用。install.sh 在正式安装前会解析/etc/os-release的NAME字段并按发行版选择包管理器路径deb 或 rpm# packaging/tools/install.sh节选 # ubuntu/debian(deb), centos/fedora(rpm), others: opensuse, redhat, ..., no verification if echo $osinfo | grep -qwi ubuntu; then os_type1 # deb 系 elif echo $osinfo | grep -qwi debian; then os_type1 elif echo $osinfo | grep -qwi Kylin; then os_type1 elif echo $osinfo | grep -qwi centos; then os_type2 # rpm 系 elif echo $osinfo | grep -qwi fedora; then os_type2 elif echo $osinfo | grep -qwi Linx; then os_type1; service_mod0; initd_mod0 else echo This is an officially unverified linux system, ... fi这里能看到两点与文档一致的实现事实脚本明确将Ubuntu/Debian 归为 deb 包、CentOS/Fedora 归为 rpm 包而 OpenSUSE、RedHat 等其余发行版走通用流程但标注“no verification未官方验证”与矩阵中“●/○/E”的分级思路一致对非白名单发行版会打印“this is an officially unverified linux system”提示即未经验证的平台安装不被推荐用于生产。此外install.sh 中对非 rootuser安装方式还有 systemd 版本门槛echo -e ${RED}Non-root install requires systemd 232, current version: ${sd_ver:-unknown}${NC} echo -e Supported: CentOS/RHEL 8, Ubuntu 18.04, Debian 9, SUSE 15 echo -e CentOS/RHEL 7 (systemd 219) does not support non-root installation.这说明以普通用户身份安装 TDengine 需要 systemd ≥ 232CentOS/RHEL 8、Ubuntu 18.04、Debian 9、SUSE 15CentOS/RHEL 7systemd 219不支持非 root 安装部署时需注意这一隐含限制。仓库中还存在一个更细粒度的发行版检测脚本 check_os.sh它通过/etc/issue、/etc/redhat-release、lsb_release -is等途径识别 CentOS区分 5/6/7 大版本、Debian 系Debian/Deepin/Kali、Ubuntu 系Ubuntu/Linux Mint/elementary无法识别时直接报错退出——从源码结构看这类脚本用于安装/打包流程中更精确地匹配发行版。客户端和连接器支持的平台列表与服务端不同TDengine 客户端与连接器的覆盖面显著更广。官方连接器目前包括X64 / X86 / ARM64 / ARM32 / MIPS / LoongArch64或 Loong64等硬件平台以及Linux / Win64 / Win32 / macOS等开发环境。各连接器在上述平台上的验证状态矩阵● 官方测试验证通过○ 非官方测试验证通过— 未经验证如下连接器Linux X64 64bitWin64macOSLinux ARM64macOS ARM64C/C●●●●●JDBC●●●●●Python●●●●●Go●●●●●NodeJs●●●●●C#●●○○○Rust●●●○●REST API●●●●●从该矩阵可以推断出选型建议C/C、JDBC、Python、Go、NodeJs、REST API在 Linux X64/ARM64、Win64 和 macOS 上均获官方验证是生产环境的主力连接器C#在 macOS 及 Linux ARM64 上为非官方验证○Rust在 Linux ARM64 上为非官方验证选型时若运行在这些平台组合上需自行评估该矩阵未列出 X8632 位、MIPS、LoongArch64 的具体行但文档明确说明连接器整体覆盖这些硬件平台说明这些架构的支持主要面向 C/C 底层客户端及其衍生生态。多架构支持在构建系统中的实现客户端为何能覆盖这么多架构从 cmake/platform.cmake 可以看到构建时对操作系统和 CPU 架构的完整探测逻辑# cmake/platform.cmake节选 IF (CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME MATCHES Darwin) ... ELSEIF (CMAKE_SYSTEM_NAME MATCHES Windows) SET(TD_WINDOWS TRUE) ADD_DEFINITIONS(-DWINDOWS) ENDIF()IF (${BUILD_VER_CPUTYPE} STREQUAL ) IF (CMAKE_SYSTEM_PROCESSOR MATCHES (amd64)|(AMD64)|(x86_64)|(X86_64)) SET(PLATFORM_ARCH_STR amd64) SET(TD_INTEL_64 TRUE) ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES (x86)|(X86)) SET(PLATFORM_ARCH_STR i386) SET(TD_INTEL_32 TRUE) ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES armv7l) SET(PLATFORM_ARCH_STR arm) SET(TD_ARM_32 TRUE) ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES (aarch64)|(arm64)) SET(PLATFORM_ARCH_STR arm64) SET(TD_ARM_64 TRUE) ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES loongarch64) SET(PLATFORM_ARCH_STR loongarch64) SET(TD_LOONGARCH_64 TRUE) ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES mips64) SET(PLATFORM_ARCH_STR mips) SET(TD_MIPS_64 TRUE) ENDIF ()即构建系统原生识别x64 / x86 / arm32 / arm64 / loongarch64 / mips64六类 CPU 架构并支持通过-DBUILD_VER_CPUTYPEaarch64等参数显式指定交叉目标架构。与之配套的是deps/目录下的分平台预编译依赖布局目标平台依赖目录TD_DEPS_DIRLinux x86_64x86Linux ARM32/64 位armLinux MIPS64mipsmacOS Apple Silicon / ARMdarwin/armmacOS Intel x64darwin/x64Windows 64 位win/x64Windows 32 位win/i386仓库中的deps/arm/dm_static、deps/x86/rocksdb_static、deps/mips/dm_static、deps/win/x64、deps/darwin/arm等目录即为各架构预置的静态库从源码结构看多平台支持在构建层面是通过“平台探测 分目录依赖”机制落地的未命中任何已知平台的构建会直接FATAL_ERROR unsupported platform终止。支持的网络环境IPv4 与 IPv6TDengine 支持 IPv4 和 IPv6 两种通信方式。IPv6 能力在源码中有明确落地客户端地址解析逻辑处理了[IPv6]:port、纯 IPv6 地址等格式见 tmisce.c其中if (tsEnableIpv6)分支控制 IPv6 行为消息层包含SIpV6Range等 IPv6 地址范围结构及处理代码见 tmsg.c。IPv6 的完整配置方法参见仓库文档 网络与 FQDN 配置其关键约束与操作要点如下支持范围支持版本TDengine Server 和 Client 版本均需 ≥3.3.7.0支持组件taosd服务端、taos shell、各连接器JDBC、Go、Python、C#、Rust 等需使用支持 IPv6 的版本网络环境纯 IPv6 环境或 IPv4/IPv6 双栈环境均支持。服务端配置/etc/taos/taos.cfg// firstEp/secondEp 设为接口对应的 IPv6 地址:: 表示监听所有 IPv6 接口 firstEp ipv6_address1:port secondEp ipv6_address2:port fqdn ipv6_address1 enableIPv6 1修改后重启服务生效sudo systemctl restart taosd客户端连接方式使用 FQDN域名 AAAA 记录指向正确 IPv6 地址时客户端自动通过 IPv6 建连例如taos -h your_server_fqdn -P 6030直接使用 IPv6 地址命令行或连接字符串中必须用中括号包裹例如taos -h [2001:db8::1] -P 6030。注意事项默认端口 6030 同样适用于 IPv6 连接强烈建议使用 FQDN 而非直接写死 IP通过 DNS 解析自动选择地址确保服务器、客户端及中间网络设备路由、防火墙均正确放行 6030 端口的 IPv6 通信双栈主机上需显式让 FQDN 指向 IPv6 地址以优先走 IPv6。小结选型与部署核对清单结合本文两张矩阵与仓库实现部署 TDengine 前可按以下清单核对服务端确认发行版与版本在服务端矩阵内如 Ubuntu 18、CentOS 7.9、RHEL 7、macOS 14.0 ARM64 等国产系统优先企业版或 Docker 方式。客户端/连接器按“连接器 × 平台”矩阵确认验证等级C# 在 macOS/Linux ARM64、Rust 在 Linux ARM64 属于非官方验证项。安装方式非 root 安装要求 systemd ≥ 232CentOS/RHEL 7 不支持发行版识别逻辑见 install.sh。网络需要 IPv6 时确保服务端与客户端版本均 ≥ 3.3.7.0并配置enableIPv6 1与firstEp/secondEp。构建部署源码构建的平台/架构探测由 cmake/platform.cmake 完成覆盖 Linux/macOS/Windows 与 x64/x86/arm32/arm64/loongarch64/mips64。以上矩阵以当前仓库文档为准实际可用版本能力可能随发布版本演进请以对应版本的官方发布说明为准。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表