依赖:
注意: (下载不下来使用阿里云镜像, 不使用中央仓库)
第一步: 添加公共依赖 Common 进行版本控制
<dependencyManagement>
<dependencies>
<!--微服务 版本依赖关系 (相互对应_官方)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.2.RELEASE</version>
<type>pom</type>
<scope>import</scope><!--引入三方依赖版本的设计-->
</dependency>
<!--规范-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR9</version>
<!--只有pom 类型可以import-->
<type>pom</type>
<scope>import</scope>
</dependency>
<!--规范的实现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.6.RELEASE</version>
<!--只有pom 类型可以import-->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
第二步: 添加公共依赖
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<!--不用打包 默认: compile
provided 表示只在此依赖编译阶段
-->
<scope>provided</scope>
</dependency>
<!--子工程中加入单元测试时候 不需要在引入此依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!--不需要的依赖 排除的-->
<exclusions>
<exclusion>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
第三步: 定义当前工程模块以及子模块的统一编译和运行版本
<!--第三步: 定义当前工程模块以及子模块的统一编译和运行版本--> <build><!-- 项目构建配置 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> </build>
第四步: 子工程加入的配置
<!--注册中心--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--配置中心--> <!-- 添加nacos配置中心的依赖 此时项目中就会多了一些java文件 寻找bootstrap.yml 这时候才不能使用application,yml --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
(历史最全的yml配置)
第五步: 填写bootstrap.yml
server:
port: 8082
spring:
application:
name: app-cloudtest
# nacos默认可以不写 但是 如果不是默认的必须要写
cloud:
nacos:
#注册中心
discovery:
#server-addr: http://192.168.*:8848
server-addr: http://*:8848
#配置中心
config:
server-addr: http://*:8848
file-extension: yml #配置的格式 yml
#设置命名空间 这个是新建的dev命名空间(不写就是public)
namespace: 5ff7df55-0fb2-4911-b4ca-dedcdf249d10
#读取dev(UUID)命名空间下的group分组
# group: *_GROUP_01
group: DEFAULT_GROUP
#添加共享配置(公共配置) 以数组形式 读取配置也是从nacos上读取
shared-configs[0]:
data-id: *-public.yml
refresh: true
shared-configs[1]:
data-id: *-public.yml
refresh: true
#配置com.pzy包以及子包中的日志级别 默认info 配置中心里了
#logging:
# level:
# com.pzy: debug #可以将这个写到配置中心里
[新增TODO]
网关gateway
1.常用依赖(webFlux+gateway)
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--假如网关层面进行限流,添加如下依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
</dependency>
</dependencies>
2.yml配置(基本, 连接配置中心)
server:
port: 9000
spring:
application:
name: pzy-gateway
cloud:
nacos:
discovery:
server-addr: *:8848
config:
server-addr: *:8848
file-extension: yml
namespace: 85407696-397b-4fa4-b5c2-*
group: PZY_GROUP
sentinel:
transport:
dashboard: localhost:6379
eager: true
3. 配置中心nacos配置
4. 配置中心详情(yml)
spring:
cloud:
gateway:
routes:
- id: router01
uri: lb://pzy-resource
predicates:
- Path=/sso/resource/**
filters:
- StripPrefix=1
- id: router02
uri: lb://pzy-auth
predicates:
- Path=/sso/oauth/**
filters:
- StripPrefix=1
globalcors: #跨域配置(写到配置文件的好处是可以将其配置写到配置中心)
corsConfigurations:
'[/**]':
allowedOrigins: "*"
allowedHeaders: "*"
allowedMethods: "*"
allowCredentials: true
全局信息(图片)
5. 启动gateway 的 sentinel
在gateway的 application中添加 运行环境
-Dcsp.sentinel.app.type=1
然后启动gateway
6. 找到sentinel, 打开
java -Dserver.port=6379 -Dcsp.sentinel.dashboard.server=localhost:6379 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.3.jar