SpringCloud基础知识
eureka的了解
Eureka是什么?
- Eureka是用于实现服务注册和发现的工具;
- Eureka可以与SpringBoot构建的微服务很容易整合起来;
Eureka由两部分组成:Eureka Server 和 Eureka Client
- Eureka Server用于注册服务;
- Eureka Client分为:服务消费者和服务提供者;
Eureka注解:
@EnableDiscoveryClient //启动主类声明该服务被注册中心发现
@EnableEurekaClient //表明自己是一个Eureka Client
Ribbon的了解
Ribbon是什么?
Ribbon默认为我们提供很多负载均衡算法:
- 轮询
- 随机
负载均衡的好处:
- 当集群里的1台或者多台服务器down的时候,剩余的没有down的服务器可以保证服务的继续使用
- 使用了更多的机器保证了机器的良性使用,不会由于某一高峰时刻导致系统cpu急剧上升。
RestTemplate代码:
@Configuration
public class ConfigBean {
@Bean
@LoadBalanced //Ribbon负载均衡
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
应用程序入口Application:
@EnableDiscoveryClient //启动主类声明该服务被注册中心发现
@EnableEurekaClient //表明自己是一个Eureka Client
Feign的了解
Feign是什么:
-
Feign是一个声明似的web服务客户端;
-
Feign默认集成了Ribbon,并和Eureka结合)**。默认实现了负载均衡的效果;
Feign注解:
package com.qfjy.dudu.client;
/**
用于通知Feign组件对该接口进行代理(不需要编写接口实现),
name属性指定我们要调用哪个服务。使用者可直接通过@Autowired注入。
DUDU-USER是Eureka中Application
path 定义当前FeignClient统一前缀(用户微服务上下文路径是:dudu-user
*/
@FeignClient(name = "DUDU-USER",path = "dudu-user")
public interface UserServiceFeignClient {
/**
此处调用方法要和服务提供者
UserController一致
*/
@RequestMapping(value = "/user/{id}")
public User selectById(@PathVariable("id") Integer id);
}
应用程序入口:
@EnableDiscoveryClient //Eureka注册中心发现
@EnableFeignClients //扫描所有带@FeignClient注解的类 进行容器Bean管理
注解描述总结:
@FeignClien
用于通知Feign组件对该接口进行代理(不需要编写接口实现),
name属性 指定FeignClient名称。指定我们要调用哪个服务。name属性会作为微服务的名称,用于服务发现。使用者可直接通过@Autowired注入。
path属性 定义当前FeignClient的统一前缀
fallback属性 定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑。fallback指定的类必须实现@FeignClient标记的接口
Hystrix的理解
Hystrix是什么:
Hystrix是由Netflix开源的一个针对分布式系统容错处理的开源组件。能够提供断路,降级,监控等多种服务。
解决了什么问题:
雪崩效应 、服务隔离、服务熔断、服务降级、服务限流;在这种多系统和微服务的情况下,需要一种机制来处理延迟和故障,并保护整个系统处于可用稳定的状态。
Hystrix注解:
主程序入口
@EnableHystrix //开启断路器 Hystrix注解
微服务网关的了解(zuul1)
什么是zuul1:
统一管理API的一个网络关口、通道,是整个微服务平台所有请求的唯一入口;
微服务网关的作用:
可以和Eureka、Ribbon、Hystrix等组件配合使用,它主要用作反向代理、Filter扩展、动态加载、动态路由、压力测试、弹性扩展、审查监控、安全检查等。
zuul1注解:
@EnableZuulProxy //声明ZUUL代理
@EnableDiscoveryClient //Eureka配置