SpringCloud学习—服务拆分与远程调用
服务拆分注意事项
- 不同微服务,不需要重复开发相同的业务
- 微服务数据独立,不要访问其他微服务的数据库
- 微服务可以将自己的业务暴露为接口,供其他微服务调用
微服务的远程调用
注意:一个服务既可以是提供者也可以是消费者。
Eureka 注册中心
Eureka的作用
案例
01.搭建注册中心
02.服务注册
一个服务多次启动
03.服务发现
Ribbon负载均衡
负载均衡流程
原理
负载均衡策略
饥饿加载
Nacos注册中心
服务注册到Nacos
Nacos服务分级存储模型
服务跨集群调用问题
服务集群属性
根据集群负载均衡
优先选择本地集群,然后 在本地集群里进行随机选择
根据权重负载均衡
环境隔离
nacos注册中心细节分析
nacos拥有主动检测和消息推送
Nacos配置管理
统一配置管理
配置的热更新
@Slf4j
@RestController
@RequestMapping("/user")
//@RefreshScope
public class UserController {
@Autowired
private UserService userService;
// @Value("${pattern.dateformat}")
// private String dateformat;
@Autowired
private PatternProperties patternProperties;
@GetMapping("prop")
public PatternProperties properties(){
return patternProperties;
}
@GetMapping("now")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(patternProperties.getDateformat()));
}
/**
* 路径: /user/110
*
* @param id 用户id
* @return 用户
*/
@GetMapping("/{id}")
public User queryById(@PathVariable("id") Long id,
@RequestHeader(value = "Truth",required = false) String truth) {
System.out.println("truth:"+truth);
return userService.queryById(id);
}
}
多环境配置共享
优先级,远端大于本地,而远端的配置中,带环境的配置要更高。
Nacos集群搭建
http客户端Feign
自定义Feign的配置
Feign的性能调优
抽取FeignClient
统一网关Gateway
搭建网关服务
路由断言工厂 Route Predicate Factory
路由过滤器GatewayFilter
全局过滤器GlobalFilter
HttpStatus(状态码 枚举)
过滤器执行的顺序
跨域问题处理