SpringCloud
2023-05-10 14:05:26 8 举报
Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。Spring Cloud包含了多个子项目,如Spring Cloud Config、Spring Cloud Netflix、Spring Cloud OpenFeign等,每个子项目都提供了一些解决特定问题的工具或组件。通过使用Spring Cloud,开发者可以快速构建出高效、可扩展的云应用系统。
作者其他创作
大纲/内容
服务网关gateway
注册中心
负载均衡
项目中是如何使用feign的(最佳实践)2.抽取方式①首先创建一个module,命名为feign-api,然后引入feign的starter依赖②将order-service中编写的UserClient、User、DefaultFeignConfiguration都复制到feign-api项目中③在order-service中引入feign-api的依赖④修改order-service中的所有与上述三个组件有关的import部分,改成导入feign-api中的包配置Feign日志有两种方式:方式一:配置文件方式配置Feign日志的方式二:java代码方式,需要先声明一个Bean:如果要全局生效,将其放到启动类的@EnableFeignClients这个注解中:
Nacos中的配置文件变更后,微服务无需重启就可以感知.方式一:在@Value注入的变量所在类上添加注解@RefreshScope方式二:使用@ConfigurationProperties注解
定时拉取服务 pul
RibbonLoadBanlancerClient
DynamicServerListLoadBalancer
注册. 发现. 监控
网关的作用请求路由、负载均衡身份认证、权限校验请求限流
项目启动
LoadBalancerInterceptor负载均衡拦截器
2.获取url中的服务id
过滤器的作用是什么?对路由的请求或响应做加工处理,比如添加请求头配置在路由下的过滤器只对当前路由的请求生效实现全局过滤器的步骤?实现GlobalFilter接口添加@Order注解或实现Ordered接口编写处理逻辑
创建spring容器
Nacos服务分级存储模型namespacegroup服务集群实例
1.路由规则判断
全局过滤器
服务集群
主动推送变更消息push
Nacos注册中心、配置管理服务
路由
3.负载均衡,发送请求
服务列表缓存
请求路由
配置中心
加载bean
微服务
5.服务负载均衡
Ribbon是Netflix开发的一个负载均衡器,用于在客户端上进行负载均衡。Ribbon能够将客户端的请求分发到不同的服务器上,以提高系统的可用性和吞吐量。SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。负载均衡算法包括轮询、随机、加权轮询、加权随机、最少连接数等
eureka-server
默认过滤器
网关gateway
3.拉取userservice
8082
读取nacos中配置文件
8081
远程调用
nacos 地址
路由过滤器
注册发现
使用Feign的步骤:① 引入 feign依赖 ② 在启动类中 添加@EnableFeignClients注解③ 编写FeignClient接口 SpringMVC● 服务名称:userservice● 请求方式:GET● 请求路径:/user/{id}● 请求参数:Long id● 返回值类型:User④ 使用FeignClient中定义的方法代替RestTemplate
6.根据规则选择
非临时实例nacos主动询问
读取配置
feign
微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发面向服务:微服务对外暴露业务接口自治:团队独立、技术独立、数据独立、部署独立隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
请求到8081
IRule
4.返回服务列表:local host:8081localhost:8082
临时实例采用心跳监测
gateway
bookstrap.yml
注册服务信息
nacos注册中心
发起请求
服务提供者
SpringCloud是目前国内使用最广泛的微服务框架SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验SpringCloud底层是依赖于SpringBoot的,并且有版本的兼容关系
路由4配置包括:路由id:路由的唯一标示路由目标(uri):路由的目标地址,http代表固定地址,lb代表根据服务名负载均衡路由断言(predicates):判断路由的规则,路由过滤器(filters):对请求或响应做处理gateway: routes: # 网关路由配置 - id: user-service # 路由id,自定义,只要唯一即可 uri: lb://userservice # 路由的目标地址 lb就是负载均衡,后面跟服务名称 predicates: # 路由断言,也就是判断请求是否符合路由规则的条件 - Path=/user/** # 这个是按照路径匹配,只要以/user/开头就符合要求
服务消费者
2.拉取服务列表
拉取配置信息
order-service
# shared-configs: # 共享配置# -data-id: #指定名称# group: 集群# refresh: false #热更新
读取本地配置文件application.yml
收藏
0 条评论
下一页