在阿里云上部署Spring Cloud微服务架构时,需要根据实际需求进行一系列配置和优化。以下是关键配置步骤和注意事项:
一、基础环境配置
-
ECS实例选择
- 规格:根据微服务负载选择(如2核4G起步,高并发选计算型)
- 镜像:推荐Alibaba Cloud Linux或CentOS(预装JDK 17+)
- 安全组:开放服务端口(如8080-8085)、Nacos(8848)、Sentinel(8719)等
-
网络规划
- VPC专有网络:划分不同子网(如业务/数据库隔离)
- SLB负载均衡:为网关层(Spring Cloud Gateway)配置七层负载
二、服务注册与发现(Nacos)
-
阿里云Nacos服务
- 开通MSE(微服务引擎)的Nacos托管版
- 配置白名单:将ECS内网IP加入Nacos白名单
# application.yml示例 spring: cloud: nacos: discovery: server-addr: ${NACOS_SERVER_ADDR}:8848 namespace: ${NAMESPACE_ID} # 多环境隔离 config: file-extension: yaml
-
高可用建议
- 生产环境至少3节点Nacos集群
- 配置持久化到阿里云RDS或本地MySQL
三、配置中心
- Nacos Config配置
- 在Nacos控制台创建
${spring.application.name}-${profile}.yaml配置 - 开启配置自动刷新:
@RefreshScope @RestController public class ConfigController { @Value("${config.key}") private String config; }
- 在Nacos控制台创建
四、服务通信与治理
-
OpenFeign + LoadBalancer
feign: client: config: default: connectTimeout: 5000 readTimeout: 5000 -
Sentinel流量控制
- 开通AHAS Sentinel服务
- 配置规则持久化到Nacos:
@GetMapping("/resource") @SentinelResource(value = "resource", blockHandler = "handleBlock") public String resource() { ... }
五、网关配置(Spring Cloud Gateway)
- 阿里云SLB对接
- 为Gateway配置域名解析+HTTPS证书
- 路由与限流配置:
spring: cloud: gateway: routes: - id: user-service uri: lb://user-service predicates: - Path=/api/user/** filters: - name: RequestRateLimiter args: redis-rate-limiter.replenishRate: 100 redis-rate-limiter.burstCapacity: 200
六、持久化与中间件
-
数据库
- 使用阿里云RDS(MySQL/PostgreSQL)
- 配置读写分离或PolarDB(高并发场景)
-
Redis缓存
- 开通阿里云Redis版,配置Redisson客户端:
spring: redis: host: ${ALIYUN_REDIS_ENDPOINT} password: ${PASSWORD} lettuce: pool: max-active: 32
- 开通阿里云Redis版,配置Redisson客户端:
-
消息队列
- RocketMQ(推荐阿里云商业版):
@RocketMQMessageListener(topic = "order-topic", consumerGroup = "order-group") public class OrderConsumer implements RocketMQListener<String> { ... }
- RocketMQ(推荐阿里云商业版):
七、监控与运维
-
Arthas在线诊断
- 通过阿里云Arthas控制台进行实时诊断
-
日志服务SLS
- 集成Log4j2或Logback:
<dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>aliyun-log-logback-appender</artifactId> </dependency>
- 集成Log4j2或Logback:
-
Prometheus + Grafana
- 使用阿里云ARMS Prometheus采集指标
- 配置Spring Boot Actuator端点:
management: endpoints: web: exposure: include: "*" metrics: tags: application: ${spring.application.name}
八、安全配置
-
SSL证书
- 在阿里云SSL证书服务申请并绑定到SLB
-
RAM权限控制
- 为ECS分配最小权限角色(如AliyunECSFullAccess)
-
微服务安全
- 集成Spring Security OAuth2 + 阿里云IDaaS
九、CI/CD(可选)
-
镜像构建
FROM openjdk:17-jdk-alpine COPY target/app.jar /app.jar ENTRYPOINT ["java","-jar","/app.jar"] -
部署方式
- 使用阿里云容器服务ACK(K8s)
- 或通过EDAS进行托管部署
常见问题
- 跨域问题:通过Gateway统一配置CORS
- 注册IP问题:强制指定注册IP:
spring: cloud: inetutils: preferred-networks: 192.168,10.0 - 配置优先级:阿里云ACM配置 > Nacos配置 > 本地配置
通过以上配置,Spring Cloud应用可以充分利用阿里云基础设施实现高可用、可观测的微服务架构。建议结合阿里云官方文档进行细节调整。
云服务器