文章目录
- Nacos配置管理
- 统一配置管理
- 配置热更新![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c8a2d17baeef411980b44b432eb9692a.png)
- 配置共享
- 搭建Nacos集群
- Feign远程调用
- 介绍
- 自定义配置
- 性能优化
- 最佳实践
- Gateway服务网关
- 介绍
- 搭建网关服务
- 路由断言工厂
- 路由过滤器
- 全局过滤器
- 过滤器执行顺序
- 跨域问题处理
Nacos配置管理
统一配置管理
在Controller层编辑测试类
@Value("${pattern.dateformat}")private String dateformat;@GetMapping("now")public String now(){return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));}
结果
配置热更新
配置共享
搭建Nacos集群
Feign远程调用
介绍
新建接口类
@FeignClient("userservice")
public interface UserClient {@GetMapping("/user/{id}")User findByID(@PathVariable("id") Long id);
}
服务端
@Autowiredprivate UserClient userClient;public Order queryOrderById(Long orderId) {// 1.查询订单Order order = orderMapper.findById(orderId);//2.Feign远程调用,查询用户User user = userClient.findByID(order.getUserId());//3.封装User到Orderorder.setUser(user);// 4.返回return order;}
自定义配置
性能优化
最佳实践
Gateway服务网关
介绍
搭建网关服务
路由断言工厂
路由过滤器
全局过滤器
@Component
@Order(-1)
public class AuthorizeFilter implements GlobalFilter {@Overridepublic 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.判断参数值是否等于adminif ("admin".equals(auth)){//4. 是,放行return chain.filter(exchange);}//5. 否,拦截//5.1设置状态码exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);//5.2拦截请求return exchange.getResponse().setComplete();}
}
过滤器执行顺序
跨域问题处理