Nacos配置管理

 

 配置信息我们写有热更新需求的配置就可以了

 

1.引入Nacos的配置管理客户端依赖:

<!--nacos配置管理依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2.在userservice中的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml 主要是告诉从哪里去拉取配置

spring:
  application:
    name: userservice
  profiles:
    active: dev #环境为开发环境
  cloud:
    nacos:
      server-addr: localhost:8848  #nacos地址
      config:
        file-extension: yaml #文件后缀名

 

 配置自动刷新

 

 

多环境配置共享

 

 

 

Nacos集群搭建

 

 

多服务共享配置

 

 

 

http客户端Feign

RestTemplate方式调用存在的问题

 

Feign的介绍

Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign

其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。

使用Feign的步骤如下:

1.引入依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2.在order-service的启动类添加注解开启Feign的功能:

3.编写Feign客户端:

@FeignClient("userservice")
public interface UserClient {
    @GetMapping("/user/{id}")
    User findById(@PathVariable("id") long id);
}

 4.用Feign客户端代替RestTemplate

 

 

自定义Feign的配置

配置Feign日志有两种方式:

 

 

 

Feign的性能优化

 Feign的性能优化-连接池配置

Feign添加HttpClient的支持:

1.引入依赖

<!--        feign添加httpClient支持-->
        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-httpclient</artifactId>
        </dependency>

2.配置连接池:

 

 Feign的最佳实践

 ​​​​​​​

抽取FeignClient

 3:

 

 推荐使用方式2

 

 统一网关

为什么需要网关

网关的技术实现

 

 搭建网关服务

1.创建新的module,引入SpringCloudGateway的依赖和nacos的服务发现依赖:

<!--网关依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--nacos服务发现依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2.编写路由配置及nacos地址

server:
  port: 10010
spring:
  application:
    name: gateway
  cloud:
    nacos:
      server-addr: localhost:8848 #nacos地址
    gateway:
      routes:
        - id: user-service #路由标识必须唯一
          uri: lb://userservice #路由目标地址
          predicates:  #路由断言,判断请求是否符合规则
            - Path=/user/** #路由断言 判断请求路劲是否以/user开头

 

路由断言工厂Route Predicate Factory

 

 

 

 路由过滤器 GatewayFilter

过滤器工厂 GatewayFilterFactory

 

 案例 给所有进入userservice的请求添加一个请求头

 

默认过滤器 

 全局过滤器 GlobalFilter

 

 

 

 过滤器执行顺序

 

  跨域问题处理

 

 

 限流过滤器

 

 

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐