Macula Boot Starter Cloud Tencent

概览

Tencent 接入面向 Java 17、Spring Boot 4 与 Spring Cloud 2025.1,提供 Polaris 配置、服务发现与 Feign 调用能力;业务服务与网关按角色选择对应 Starter。

基于Spring Cloud Tencent 的微服务开源套件Polarismesh搭建微服务平台。

组件坐标

业务服务选择 macula-boot-starter-cloud-tencent,网关选择 macula-boot-starter-cloud-tencent-scg。SCG 已组合共享 macula-boot-starter-cloud-gateway,无需重复引入。通常按项目选择 Tencent 或 Alibaba 一套云平台。

macula-boot-starter-cloud 是聚合 POM,不是启用全部云能力的运行时 Starter。以下子模块均使用 dev.macula.boot 坐标,版本由 Macula Boot Parent 管理;未采用统一版本管理时显式指定版本。

<!-- 微服务模块依赖 -->
<dependency>
    <groupId>dev.macula.boot</groupId>
    <artifactId>macula-boot-starter-cloud-tencent</artifactId>
    <version>${macula.version}</version>
</dependency>

        <!-- 网关模块依赖 -->
<dependency>
<groupId>dev.macula.boot</groupId>
<artifactId>macula-boot-starter-cloud-tencent-scg</artifactId>
<version>${macula.version}</version>
</dependency>

使用配置

以下按当前 Tencent Provider application.yml 精简;网关差异见 Tencent Gateway application.yml。

属性示例值 / 说明
spring.config.importoptional:polaris,通过 Config Data 导入配置
spring.profiles.group.dockerlocal,Docker 复用本地默认配置
spring.cloud.polaris.config.enabled / auto-refresh示例均为 true,启用配置中心和刷新
spring.cloud.polaris.config.groups[].name应用名对应的配置组
spring.cloud.polaris.discovery.enabled / register示例均为 true,启用发现和注册
spring.cloud.polaris.addresslocal:grpc://127.0.0.1:38091;docker:grpc://polaris:8091
spring.cloud.polaris.namespacePOLARIS_NAMESPACE,示例为 macula-dev
spring.cloud.nacos.discovery.server-addrPolaris Nacos 兼容地址:local 127.0.0.1:38849,docker polaris:8848

本模块无额外自有属性;表中地址和开关是 samples 配置,不是所有应用的默认值。

server:
  port: ${SERVER_PORT:4020}
spring:
  profiles:
    active: '@profile.active@'
    group:
      docker: local
  application:
    name: macula-example-tencent-provider
  config:
    import: optional:polaris
  cloud:
    polaris:
      config:
        enabled: true
        auto-refresh: true
        groups:
          - name: ${spring.application.name}
      discovery:
        enabled: true
        register: true
---
spring:
  config:
    activate:
      on-profile: local
  cloud:
    nacos:
      discovery:
        server-addr: ${POLARIS_NACOS_SERVER_ADDR:127.0.0.1:38849}
    polaris:
      address: ${POLARIS_SERVER_ADDR:grpc://127.0.0.1:38091}
      namespace: ${POLARIS_NAMESPACE:macula-dev}
---
spring:
  config:
    activate:
      on-profile: docker
  cloud:
    nacos:
      discovery:
        server-addr: ${POLARIS_NACOS_SERVER_ADDR:polaris:8848}
    polaris:
      address: ${POLARIS_SERVER_ADDR:grpc://polaris:8091}
      namespace: ${POLARIS_NAMESPACE:macula-dev}

dev/stg/pet/prd 仅保留配置中心连接信息,其他配置由 Polaris 配置组提供。optional:polaris 只放宽配置导入,不代表服务发现等依赖可以完全离线运行。

Redis 连接使用 spring.data.redis.*,详见 Redis;可观测性导出使用 management.*,详见 Observability。云平台示例普通 profile 默认关闭 OTLP 网络导出,叠加 observability profile 时开启。

核心功能

  • 通过 Polaris 加载配置、注册和发现服务,结合 Feign 调用下游服务。
  • Tencent SCG 组合共享 Gateway,提供 HTTP / WebSocket 转发;路由、认证、签名与加解密见 Gateway。Reactive 网关不混入 Servlet Web Starter,加解密与签名扩展由业务提供 CryptoService。
  • Tencent 不使用 Alibaba 的 Nacos 灰度模块;两套云平台的配置与依赖按实际选择分别接入。

Polaris、Redis 与 IAM 等运行服务需单独部署;启动和本地容器环境见 Examples README。

请参考官方文档

依赖引入

微服务模块


<dependencies>
    <!-- Spring Cloud -->
    <dependency>
        <groupId>dev.macula.boot</groupId>
        <artifactId>macula-boot-starter-feign</artifactId>
    </dependency>

    <!-- Spring Cloud Tencent -->
    <dependency>
        <groupId>com.tencent.cloud</groupId>
        <artifactId>spring-cloud-starter-tencent-all</artifactId>
    </dependency>
</dependencies>

网关模块


<dependencies>
    <dependency>
        <groupId>dev.macula.boot</groupId>
        <artifactId>macula-boot-starter-cloud-gateway</artifactId>
    </dependency>

    <dependency>
        <groupId>com.tencent.cloud</groupId>
        <artifactId>spring-cloud-starter-tencent-all</artifactId>
    </dependency>
</dependencies>

Macula Boot 6.1 的 Tencent 与 Tencent SCG Starter 默认排除 Polaris Contract。该组件当前仍依赖 Springdoc 2.x:在普通应用中会导致合约上报出现 NoSuchMethodError,在 reactive gateway 中会直接导致启动失败。 确需合约上报时,请等待 Spring Cloud Tencent 提供 Springdoc 3 兼容版本后再显式引入 spring-cloud-starter-tencent-polaris-contract。

版权说明

Macula Boot 使用 Apache License 2.0。

  • spring-cloud-tencent:https://github.com/Tencent/spring-cloud-tencent/blob/2021.0/LICENSE