- 下载nacos:https://github.com/alibaba/nacos/releases
- 启动
startup.cmd -m standalone
- 依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 配置微服务的yml
# 除此之外要指定spring.application的名字
cloud:
nacos:
discovery:
server-addr: localhost:8848
- 访问http://localhost:8848/nacos
- 密码和用户名都为nacos
openfei
- 依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
- 编写远程调用的接口,方法基本就是远程调用方法的头,添加 @FeignClient(“服务名”)
@FeignClient("coupon")
public interface CouponFeign {
@RequestMapping("coupon/coupon/info/{id}")
public R info(@PathVariable("id") Long id);
}
- 启动添加 @EnableFeignClients
配置中心
如果每次修改配置的时候都需要重新打包发布会很麻烦,使用配置中心就可以动态的解决这个问题
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
-
对应controller添加动态刷线注释 @RefreshScope
-
在配置中心增加配置文件(可以将application中的配置抽取出来,方便配置)
-
新建 bootstrap.yml ,增加配置
spring:
cloud:
nacos:
config:
server-addr: localhost:8848 # 配置中心地址
ext-config:
- data-id: name.yml # 对应配置中心上的每一个配置文件
group: dev
refresh: true # 当配置文件修改时,刷新数据
- data-id: datasource.yml
group: dev
refresh: true
- data-id: port.yml
group: dev
refresh: true
- data-id: mybatis.yml
group: dev
refresh: true
注意data-id 和 group都要对应
- 命名空间
因为每个项目会用到大量配置文件,在不同命名空间下,允许相同的配置文件 - 新建命名空间
- 使用命名空间
网关
- 注册发现 @EnableDiscoveryClient
- 配置路由
cloud:
gateway:
routes:
- id: baidu
uri: http://www.baidu.com
predicates:
- Query=name,baidu
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>