下载工作台
PaaS 组件实战

进阶组件:ClickHouse / EMQX / Keycloak 等

试读上半部分 · 解锁后可读全文

第 14 章 · 进阶组件:时序 / OLAP / IoT / 安全 / 自动化

本章覆盖商店中 高频但非基础栈 的组件:时序库、分析库、分布式 SQL、MQTT、SSO、密钥管理、工作流等。均按第 1 章七节模板展开。


14.1 组件速览

组件id端口典型场景
InfluxDBinfluxdb8086IoT 指标、自定义时序
ClickHouseclickhouse8123报表 OLAP、日志分析
TiDBtidb4000分布式 MySQL 协议
EMQXemqx1883MQTT 设备接入
Keycloakkeycloak8080SSO / OIDC
Vaultvault8200密钥托管
n8nn8n5678低代码自动化
ZooKeeperzookeeper2181Kafka 协调(旧版)
ActiveMQactivemq8161JMS 企业集成

14.2 InfluxDB 2.7(时序数据库)

适用场景

设备遥测、应用自定义 metrics 长期存储、与 Grafana 集成(Flux 查询)。

商店部署参数

idinfluxdb
镜像influxdb:2.7
端口8086
PVC10 Gi/var/lib/influxdb2

环境变量(初始化)

env:
  - name: DOCKER_INFLUXDB_INIT_MODE
    value: setup
  - name: DOCKER_INFLUXDB_INIT_USERNAME
    value: admin
  - name: DOCKER_INFLUXDB_INIT_PASSWORD
    value: InfluxPass123
  - name: DOCKER_INFLUXDB_INIT_ORG
    value: shop
  - name: DOCKER_INFLUXDB_INIT_BUCKET
    value: metrics
  - name: DOCKER_INFLUXDB_INIT_ADMIN_TOKEN
    value: my-super-secret-token

连接语法

方式
HTTP APIhttp://influxdb.data.svc.cluster.local:8086
Token初始化时 DOCKER_INFLUXDB_INIT_ADMIN_TOKEN

写入(CLI)

influx write -b metrics -o shop -t my-super-secret-token \
  'temperature,device=sensor1 value=23.5'

Flux 查询

from(bucket: "metrics")
  |> range(start: -1h)
  |> filter(fn: (r) => r._measurement == "temperature")

Python

from influxdb_client import InfluxDBClient
client = InfluxDBClient(url="http://influxdb.data:8086", token="...", org="shop")
write_api = client.write_api()
write_api.write(bucket="metrics", record={"measurement": "orders", "fields": {"count": 1}})

14.3 ClickHouse 24.3(OLAP)

适用场景

亿级日志/订单分析、实时报表、大宽表聚合;不适合 OLTP 高频单行更新。

商店部署参数

idclickhouse
镜像clickhouse/clickhouse-server:24.3
端口8123(HTTP);9000(Native,需在端口弹窗补充)
PVC50 Gi/var/lib/clickhouse

环境变量

env:
  - name: CLICKHOUSE_USER
    value: default
  - name: CLICKHOUSE_PASSWORD
    value: ChPass123
  - name: CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT
    value: "1"

SQL 语法

CREATE TABLE orders_analytics (
  order_date Date,
  product_id UInt64,
  amount Decimal(18,2)
) ENGINE = MergeTree()
ORDER BY (order_date, product_id);

INSERT INTO orders_analytics VALUES ('2026-08-18', 1001, 99.00);

SELECT product_id, sum(amount) AS revenue
FROM orders_analytics
WHERE order_date >= today() - 7
GROUP BY product_id
ORDER BY revenue DESC
LIMIT 10;

HTTP

curl "http://clickhouse.data:8123/?query=SELECT%201"

JDBCjdbc:clickhouse://clickhouse.data:8123/default


14.4 TiDB 8.1(分布式 NewSQL)

适用场景

MySQL 协议兼容 + 水平扩展;订单/账户大表分片;HTAP(配合 TiFlash 需完整集群)。

商店部署参数

idtidb
镜像pingcap/tidb:v8.1.0
端口4000(MySQL 协议);10080(Status)
PVC50 Gi/data
商店为 单容器 TiDB 演示。生产完整集群需 PD、TiKV、TiDB 多角色,请按 PingCAP 官方架构部署。

连接语法

mysql://root@tidb.data.svc.cluster.local:4000/test
mysql -h tidb.data -P 4000 -u root -e "SELECT VERSION();"

Spring Boot(与 MySQL 相同驱动)

spring:
  datasource:
    url: jdbc:mysql://tidb.data.svc.cluster.local:4000/shop?useSSL=false
    username: root

14.5 EMQX 5.8(MQTT)

适用场景

物联网设备上下行、车联网、智能家居;百万级 MQTT 连接(需调资源与集群)。

商店部署参数

idemqx
镜像emqx/emqx:5.8.0
端口1883(MQTT);8883(MQTTS);18083(Dashboard)

环境变量

env:
  - name: EMQX_NAME
    value: emqx
  - name: EMQX_HOST
    value: emqx.middleware.svc.cluster.local
  - name: EMQX_DASHBOARD__DEFAULT_USERNAME
    value: admin
  - name: EMQX_DASHBOARD__DEFAULT_PASSWORD
    value: EmqxPass123

连接语法

以下内容需解锁后阅读

试读已结束。解锁本章 ¥5.00,或开通年度会员畅读全部教程。
年度会员 ¥199.00/年; 小紫 AI 工作台有效会员 ¥99.00/年

正文仅在服务端鉴权后下发,未付费无法获取下半部分内容。