Feign的远程服务调用
1.添加注解使服务可以被发现
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.将需要调用的接口上添加@FeignClient注解,注解里面填写需要调用的服务名,接口里面的方法签名要和被调用的服务签名相同
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
@RequestMapping("/coupon/coupon/member/list")
R membercoupons();
}
3.所有的服务都要在nacos中被注册,否则发现不了
/**
* 1.远程调用别的服务
* 1)引入open-feign依赖
* 2)编写一个接口,告诉springcloud这个接口需要调用远程服务
* 1、声明接口的每一个方法都是调用那个远程服务的那个请求(具有相同的签名)
* 3)开启远程调用功能
*/
1)命名空间:配置隔离;
默认:public(保留空间);默认新增的所有配置都在public空间
1、开发,测试,生产:利用命名空间来做环境隔离。
注意:在bootstrap.yml上配置需要在那个命名空间下配置
2、每个服务之间相互隔离,每一个微服务都创建自己的命名空间,值加载自己命名空间下的配置
2)配置集:所有配置的集合
3)配置集ID:类似文件名。
Data ID:类似文件名
4)配置分组
每个微服务之间相互隔离
服务启动会默认读取服务名.properties文件
nacos配置中心
1.添加注解,使得项目能读取bootstrap.yml文件中的数据
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.0.1</version>
</dependency>
2.在yml中配置所对应的命名空间和对应的配置文件
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
group: DEFAULT_GROUP
namespace: d7e59d4d-f60e-4a14-9805-e4f9f9e75a17
application:
name: gulimall-coupon
3.最后在所需要刷新配置的类上添加@RefreshScope注解,使得配置可以被刷新