SpringCloud基础
SpringCloud的基本概念:服务拆分及远程调用
1.微服务需要根据业务模块拆分,做到单一职责,不重复开发相同业务
2.微服务可以将业务暴露为借口,供其他微服务使用
3.不同微服务都应该有自己独立的数据库
远程调用:在创建一个RestTemplate的Bean,通过RestTemplate的对象实现远程调用
服务发现与负载均衡:在启动类里创建一个RestTemplate的Bean
@Bean
/**负载均衡**/
@LoadBalanced
public RestTemplate restTemplate(){ return new RestTemplate(); }
通过RestTemplate的方法调取另一个URL,多实例的情况下localhost处写服务名可实现负载均衡
Ribbon负载均衡原理:通过RestTemplate发出的请求都被RibbonLoadBanlancerClient拦截,然后通过动态服务器列表类向注册中心获取服务器列表,之后通过IRule的规则进行负载均衡,选择一个服务返回给Client类,将服务名修改为地址再将请求发出
Ribbon负载均衡策略:
Ribbon饥饿加载:
Nacos相关概念:分为三级,服务(消费者) --> 集群(类似于杭州集群,深圳集群) --> 实例(机房具体服务器)
Ribbon默认规则并不是以集群为主,如果本地集群全体挂掉,跨集群访问,会出现警告
Nacos中的权重:
实际作用:降权重启,灰度发布(需要更新某个服务,先将单独一个服务权重降低,不影响之前的请求,观察降权的服务器,之后更新重启,重启后权重保持较低的值,先放少数用户进来,若无问题,再进一步扩大更新)
Nacos环境隔离:创建命名空间,然后在代码中设置命名空间id实现环境隔离,不同命名空间的服务无法进行访问
Nacos统一配置管理:
统一配置的注解包注意:
动态实现配置的热更新:
多种配置文件的优先级:
Nacos集群搭建:见Day2的文件
远程调用之Feign:需要在启动类中开启Feign @EnableFeignClients (Feign已经集成了Ribbon,实现了负载均衡)
Feign日志级别配制 日志级别尽量用Basic或None
Feign的性能优化:
Feign的最佳实践:(单独抽取成一个模块,通过Maven作为依赖导入进其他模块)
GateWay:Spring WebFluxhttps://zhuanlan.zhihu.com/p/420464470
单独建立一个网关模块,并进行配置
过滤器相关配置
全局过滤器实现权限控制
跨域问题
本文作者:YoProgrammer
本文链接:https://www.cnblogs.com/sakanayo/p/16481742.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步