Java微服务学习Day2

文章目录

  • Nacos配置管理
    • 统一配置管理
    • 配置热更新![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c8a2d17baeef411980b44b432eb9692a.png)
    • 配置共享
    • 搭建Nacos集群
  • Feign远程调用
    • 介绍
    • 自定义配置
    • 性能优化
    • 最佳实践
  • Gateway服务网关
    • 介绍
    • 搭建网关服务
    • 路由断言工厂
    • 路由过滤器
    • 全局过滤器
    • 过滤器执行顺序
    • 跨域问题处理

Nacos配置管理

统一配置管理

Java微服务学习Day2_第1张图片
Java微服务学习Day2_第2张图片
Java微服务学习Day2_第3张图片
Java微服务学习Day2_第4张图片
Java微服务学习Day2_第5张图片
在Controller层编辑测试类

    @Value("${pattern.dateformat}")
    private String dateformat;
    @GetMapping("now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
    }

结果
在这里插入图片描述

Java微服务学习Day2_第6张图片

配置热更新Java微服务学习Day2_第7张图片

Java微服务学习Day2_第8张图片
Java微服务学习Day2_第9张图片

配置共享

Java微服务学习Day2_第10张图片
Java微服务学习Day2_第11张图片
Java微服务学习Day2_第12张图片

搭建Nacos集群

Java微服务学习Day2_第13张图片
Java微服务学习Day2_第14张图片

Feign远程调用

介绍

Java微服务学习Day2_第15张图片
Java微服务学习Day2_第16张图片
Java微服务学习Day2_第17张图片
新建接口类

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

服务端

    @Autowired
    private UserClient userClient;
    public Order queryOrderById(Long orderId) {
        // 1.查询订单
        Order order = orderMapper.findById(orderId);
        //2.Feign远程调用,查询用户
        User user = userClient.findByID(order.getUserId());
        //3.封装User到Order
        order.setUser(user);
        // 4.返回
        return order;
    }

Java微服务学习Day2_第18张图片

自定义配置

Java微服务学习Day2_第19张图片
Java微服务学习Day2_第20张图片
Java微服务学习Day2_第21张图片
Java微服务学习Day2_第22张图片

性能优化

Java微服务学习Day2_第23张图片
Java微服务学习Day2_第24张图片
Java微服务学习Day2_第25张图片

最佳实践

Java微服务学习Day2_第26张图片
Java微服务学习Day2_第27张图片
Java微服务学习Day2_第28张图片
Java微服务学习Day2_第29张图片

Gateway服务网关

介绍

Java微服务学习Day2_第30张图片
Java微服务学习Day2_第31张图片

搭建网关服务

Java微服务学习Day2_第32张图片
Java微服务学习Day2_第33张图片
Java微服务学习Day2_第34张图片
Java微服务学习Day2_第35张图片

路由断言工厂

Java微服务学习Day2_第36张图片

路由过滤器

Java微服务学习Day2_第37张图片
Java微服务学习Day2_第38张图片
Java微服务学习Day2_第39张图片
Java微服务学习Day2_第40张图片

全局过滤器

Java微服务学习Day2_第41张图片Java微服务学习Day2_第42张图片
Java微服务学习Day2_第43张图片

@Component
@Order(-1)
public class AuthorizeFilter implements GlobalFilter {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        //1.获取请求参数
        ServerHttpRequest request = exchange.getRequest();
        MultiValueMap<String, String> params = request.getQueryParams();
        //2.获取参数中的authorization参数
        String auth = params.getFirst("authorization");
        //3.判断参数值是否等于admin
        if ("admin".equals(auth)){
            //4. 是,放行
            return chain.filter(exchange);
        }
        //5. 否,拦截
        //5.1设置状态码
        exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
        //5.2拦截请求
        return exchange.getResponse().setComplete();
    }
}

过滤器执行顺序

Java微服务学习Day2_第44张图片
Java微服务学习Day2_第45张图片

跨域问题处理

Java微服务学习Day2_第46张图片
Java微服务学习Day2_第47张图片

你可能感兴趣的:(java,微服务,学习)