微服务

概述

Macula Boot 的云能力聚合模块,面向 Java 17、Spring Boot 4 和 Spring Cloud 2025.1,提供 Alibaba/Nacos、Tencent/Polaris 两套接入方式,以及共享网关与 Alibaba 灰度路由能力。

本模块的 packaging 为 pom,不承载运行时代码,也不是引入后自动启用所有云组件的 Starter。业务应用按角色选择下面的子模块,通常不同时引入两套云平台。

组件坐标

所有子模块的 groupId 均为 dev.macula.boot,版本由 macula-boot-parent 管理;未使用统一版本管理时需显式指定与项目一致的版本。

应用角色artifactId主要能力 / 文档
Alibaba 业务服务macula-boot-starter-cloud-alibabaNacos 配置与发现、Sentinel、Feign、灰度
Alibaba 网关macula-boot-starter-cloud-alibaba-scg组合共享 Gateway、Nacos、Sentinel Gateway 和灰度模块
Tencent 业务服务macula-boot-starter-cloud-tencentPolaris 接入与 Feign
Tencent 网关macula-boot-starter-cloud-tencent-scg组合共享 Gateway 与 Tencent 云组件
共享网关基础macula-boot-starter-cloud-gatewayWebFlux 路由、认证鉴权、签名与加解密
Alibaba 灰度扩展macula-boot-starter-cloud-alibaba-grayNacos 灰度标签与负载均衡

例如 Alibaba 业务服务引入:

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

Alibaba 网关改选 macula-boot-starter-cloud-alibaba-scg;Tencent 同理选择对应 -tencent 或 -tencent-scg。SCG 已包含共享 Gateway,无需再重复引入;业务服务的 Web、持久化等能力按需组合其他 Starter。

使用配置

聚合模块没有独立配置前缀。配置展示以当前 Examples 的 application.yml 为准,完整示例与说明如下:

配置范围主要属性参考
Nacosspring.config.import、spring.cloud.nacos.*;spring.config.nacos.* 是示例自定义占位属性Alibaba Provider
Sentinelspring.cloud.sentinel.transport.*、spring.cloud.sentinel.datasource.*Alibaba 配置说明
Polarisspring.config.import、spring.cloud.polaris.*;兼容发现地址为 spring.cloud.nacos.discovery.server-addrTencent Provider
网关spring.cloud.gateway.server.webflux.*、spring.security.oauth2.resourceserver.opaquetoken.*、macula.gateway.*Alibaba Gateway、Tencent Gateway
Redisspring.data.redis.*Redis 配置说明
灰度spring.cloud.nacos.discovery.metadata.grayversion、请求头 grayversion灰度规则与开关边界
可观测性management.* 导出配置、spring.reactor.context-propagationObservability

示例按 profile 分层:公共段定义应用名和 Config Data 导入;local 提供本地默认值;docker 通过 spring.profiles.group.docker=local 复用并覆盖连接信息;dev/stg/pet/prd 主要保留配置中心连接信息。observability 额外开启 OTLP 网络导出,普通环境默认关闭。

Alibaba local 的 Nacos 地址为 127.0.0.1:${NACOS_SERVER_PORT:38848},docker / 共享环境使用 NACOS_SERVER_ADDR;Tencent local 的 Polaris / Nacos 兼容地址分别为 38091 / 38849 端口。以上是示例值,不是 Starter 默认值;应用外部地址、认证信息及环境差异请在对应配置源覆盖。

核心功能

  • 业务服务:通过所选云平台完成注册发现与配置加载,使用 Feign 调用下游;Alibaba 额外提供延迟注册、Sentinel 及灰度负载均衡。
  • 网关:基于 WebFlux 的 HTTP/WebSocket 转发及安全扩展。签名、加解密还需业务提供 CryptoService;不要把 Servlet Web Starter 混入 reactive 网关。
  • 灰度:Alibaba 与 Alibaba SCG 已传递引入灰度模块;Tencent 不使用该 Nacos 灰度实现。HTTP 灰度与 RocketMQ 灰度是不同机制,不能互相替代配置。

本模块不部署 Nacos、Polaris、Redis 或身份服务。运行条件、启动顺序和本地容器环境见 Examples;构建、测试规范见仓库根 README。

依赖引入

云平台组合与可选依赖以各子模块 pom.xml 为准,版本统一在 macula-boot-parent 管理。Tencent 与 Tencent SCG 当前排除 Polaris Contract,兼容边界见 Tencent README。

版权说明

本模块遵循仓库 Apache License 2.0;第三方组件许可见各子模块说明。

已移除的 TSF 接入

main 已移除 macula-boot-starter-cloud-tsf 与 macula-boot-starter-cloud-tsf-scg。当前云接入方式见上方 Alibaba、Tencent 与 Gateway 文档;旧版 TSF 用法保存在 5.x 历史文档。