Spring-Cloud 等组件个人理解
微服务的理解
将资源业务进行拆分
拆分的依据
- 那些业务访问次数多,流量大。
- 不是越细越好,越细服务之间的调用次数太多,响应时延过多,也会影响系统,用户体验。
有些无关紧要的业务可以不拆分。
Spring-Cloud 分布式五大组件
Eureka-服务发现
Hystrix-熔断器
Zull-路由网管
Ribbon-负载均衡
Open-Fegin-远程调用
一. Eureka 注册中心
服务发现,服务管理
provider
生产者
consumer
消费者
以服务名注册
二. OpenFegin
自定义接口,远程调用:常用方法
Consumer
:(消费者)
@FeginClient("PROVIDER")
public interface UcenterClient{
@GetMapping("/ucenter/getUserVo")
public WlzxUserVo getWlzxUserVo(@RequestParam("username") String username)
}
Controller
层
@AutoWired
private UcenterClient ucenterClinet;
远程调用(接口名.抽象方法)
ucenterClient.getWlzxUserVo("xxx");
三. 自我保护机制
服务中在运行时,会在 15分钟
内统计各个心跳失联,如果比例大于 15%
,就会开启自我保护机制,会认这些心跳失联的节点是因为网络问题,当各个节点恢复心跳,达到比例就会退出自我保护机制。
心跳机制:各个节点启动后,每 30秒
会向 Server
发送心跳。
四. 熔断器
服务相互调用之间,出现服务雪崩,A==>B==>C
,其中一个关联服务挂了,导致后面服务不能使用。
机制:当服务宕机,调用失败达到一个阈值,5秒失败20次
,链路就会出现 open状态
。
在此提供一个熔断器,Fallbac
k( 实现 FallbackFactory<Client>
接口,重写 create()
方法 )。
五. 路由网关
统一入口,所有请求服务都从网关调用,做到解耦。
过滤器能识别过滤些信息,权限。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于