#Spring cloud**
优点:
1.Spring对cloud进行了无缝集成。
2.注册服务器:实现了服务器间解耦。
3.配置服务器:集中化配置,便于维护配置。
4.出现雪崩状态可以路由到备用服务器。
5.实现了负载均衡
一、组件
微服务中的基础组件:服务注册与发现(Eureka)、服务提供和消费(服务端、客户端)、负载均衡(ribbon、feign)、熔断器(Hystrix)、智能路由(api网关比如:zuul)、配置管理。
另外还有熔断监听器、zipkin服务链追踪、spring boot admin 服务监控
1、注册中心
spring-cloud-starter-netflix-eureka-server
@enableEurekaServer
在配置文件里配置端口号、名字、是否注册待服务中心…
2、配置中心
spring-cloud-config-server
@EnableConfigServer
@EnableEurekaClient
配置文件命名与对应的服务器名字一致、配置注册中心的ip端口
3、服务提供、消费
@EnableEurekaClient
@EnableDiscoveryClient
@EnableCircuitBreaker、@EnableHystrix 开启熔断
Ribbon
@loadbalanced开启负载均衡(在restTemplate的实体注入配置类)
Ribbon通过 Ribbon+restTemplate的方式实现负载均衡
Feign
是一个声明式的http客户端,只需要创建一个接口并注解。默认集成了ribbon,并与Eureka结合,默认开启负载均衡。
spring-cloud-starter-feign
@EnableFeignClients 表示是一个Feign客户端
接口类的写法和controller类似,
@FeignClient(name=“hello-service”)
public interface FeignConsumerService{
@RequestMapping("/hello")
public void hello(requesParam(value=“ss”)String ss);
}
熔断器
导入对应的jar包
在controller中加@HystrixCommond(fallbackMethod=“methodName”)
Feign中自带有熔断器,只需在配置文件中开启,然后在feign的接口类注解里加:
@FeignClient(value=”服务器名字”,fallback=”类.class”)
这个类实现Feign的接口类,方法里写熔断后操作
熔断监视器
@EnableHystrixDashboard开启监听器,然后创建hystrix。Stream的servlet配置(用于自动注入servlet,tongguojava的配置方式,设置servletRegistrationBean的访问顺序、路径、名字)
4、API网关 Zuul
起一个路由转发、过滤器的作用。
@EnableZuulProxy
配置文件里面设置 路径、对应的服务器名字
配置路由失败后的回调函数函数(每个服务一个回调函数),需要实现FallBackProvider接口
过滤器 继承ZuulFilter
FilterType:pre,routing、post、error
FilterOrder:过滤顺序
5、ZipKin 服务器链路追踪
分布式跟踪系统、收集服务器的定时数据,以解决微服务架构中的延迟问题,所有需要服务跟踪的系统,都要有相关的依赖和配置(注册到zipkin)
6、Spring boot Admin 服务监控