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 中国大陆许可协议进行许可。

posted @   YoProgrammer  阅读(37)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
No audio
00:00 / 00:00