# spring-cloud-2021 **Repository Path**: mudking/spring-cloud-2021 ## Basic Information - **Project Name**: spring-cloud-2021 - **Description**: 基于Spring Cloud 2021.0.x版本的一些spring cloud 组件和spring 组件使用的demo. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-01-11 - **Last Updated**: 2025-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring cloud 2021 demos 因开源组件的变化, 许多spring cloud的原有组件都已弃用, 有了新的替代品. 包括:eureka, Ribbon(客户端负载均衡), zuul(网关), hystrix(熔断器)等. 详情: https://cloud.spring.io/spring-cloud-netflix/multi/multi__modules_in_maintenance_mode.html 因此,以前的demo就不适用了. ## 依赖版本 jdk 17 spring boot 2.6.x spring cloud 2021.0.x ## 目标 研究新的注册中心Consul,Zookeepr,Nacos 复杂均衡: Ribbon的替代品, LoadBalancer 远程服务调用: spring cloud OpenFeign, Dubbo 服务降级(熔断器): alibaba sentinel, resilience4j 服务网关: spring cloud gateway 配置: spring cloud config(研究是否还是主流) ,nacos, 阿波罗apollo 服务总线: spring cloud bus(研究是否还是主流) ,nacos ## maven启动某个springBoot工程: mvn spring-boot:run 如果启动不了,先检查core项目是否构建(Build)了. 由于大部分子工程都依赖公用库工程(common-config),因此需要先把common-model编译打包后安装至本地仓库,让目标工程的pom.xml中可以找到依赖. cd E:/work/vskysoft/workspace/Java/spring-cloud-chive/common-config mvn clean install -Dmaven.test.skip=true 然后切换到目标项目下,mvn compile 或者,在主工程下直接mvn install也可解决问题. 通用库工程microservice-api中,新增有@Configuration,@Component等注解需要SPring自动装配的Bean时,需要在META-INF/spring.factories中,添加配置. 这样使用此库的工程才可以正确装配. 当然,如果需要也可以解除父子工程的结构.父工程中不再显式定义modules.而是作为子工程的父依赖引入. 这样的好处是子工程可以独立运行, 但需要自行管理父工程和其他公共模块的更新. ## 开发 ## 部署 打包 ``` bash mvn clean package -Dmaven.test.skip=true ``` 运行: ``` bash # 指定配置文件 java -jar spring-boot-web-demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod # 指定端口 java -jar demo.jar --server.port=9090 ```