Spring cloud基础模块学习


1、微服务架构构成

单体架构(通过应用集群和数据库集群来提高性能,多余模块存在浪费) 垂直架构(新的功能模块通过新项目来实现,数据库之间存在交叉关联。存在数据冗余,和单体架构一样通过扩展集群结点,成本高,有性能瓶颈。) SOA架构(ESB服务总线,基于webservice协议的接口调用。) 微服务架构(采用Restful轻量协议进行服务传送) 技术栈    

2、相关技术栈简要理解

  • Eureka服务治理
启动类添加注解@EnableEurekaServer,@EnableEurekaClient  
  • Ribbon负载均衡
在启动类中添加@EnableDiscoveryClient注解,服务发现; 在具体集群的对象上添加@LoadBalanced注解,如:          
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate(new OkHttp3clientHttpRequestFactory());
}
     
  • Hystrix断路容错保护
在启动类上添加@EnableHystrix(fallbackMethod="errorMethod")注解。 在具体的方法上添加@HystrixCommand注解 如请求超时等,调用相应的服务返回结果。  
  • Zuul网关
配置文件中添加sso-service配置, 在启动类上添加@EnableZullProxy注解。 不仅用于提供对外的服务的入口,还可以在微服务之间通过zuul进行调用, 常用于请求路由、校验、过滤等功能。  
  • Config配置中心
众多微服务的配置文件可以直接统一管理,放在git上,直接读取,修改后不用重启服务。  
  • Bus消息总线
微服务之间的异步通信,如微服务A修改用户信息,微服务B需要存在缓存中,不能直接调用微服务B,可以将消息发给消息总线的队列,消息队列来通知微服务B。  
  • Sleuth链路跟踪

微服务之间的串联调用,可以跟踪到具体时哪一步出错了。  
  • Turbine集群监控