spring_cloud是基于spring_boot的微服务分布式架构,它将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,形成各种springboot微服务,然后这些微服务共同组成了springcloud微服务架构:前段时间,看官方网站已经有20多个子项目。我比较熟悉的微服务组件主要有:
1、服务注册中心:Eureka Server(相当于dubbo的zookeeper,提供了服务的存储和展示管理等功能)
2、服务注册者客户端:Eureka Client(可以把我们自己定义的微服务,作为微服务注册到注册中心或者从注册中心调用微服务,从而实现服务直接的交互)
3、服务消费端ribbon:
自己实现负载均衡,由于springcloud微服务都是通过httpclient发布服务,所以这里调用需要通过RestTemplate模板进行调用;不是很方便。于是有了第二个服务消费端
Feign,Feign是对ribbon的封装,模仿dubbo的RPC调用方式,通过注解就可以实现对服务端的调用,使用起来,感觉和在1个项目里调用没多大区别,比较方便。
4、断路器Hystrix。熔断器,就是当A 服务调用B服务时,如果B服务宕机,调用失败,这时熔断器回自动帮我给A服务器返回消息,保证A服务器不会线程阻塞,发生连带宕机。如果连着调用失败,熔断器会帮我们自动降级,让A服务器暂时不去调用B服务。熔断器帮我们监控B服务的状态,当B服务恢复时,再通知A服务器去调用B;
5、路由网关zuul(Zuul的主要功能是路由转发和过滤器,zuul默认和Ribbon结合实现了负载均衡的功能,类似nginx;)
6、Springcloud config统一配置;通过这个统一配置,可以把各个微服务的properties或yml属性文件,统一放在远程服务器git上统一进行管理
7、消息总线组件SpringCloudBus:就是对消息队列的一种封装,通过SpringCloudBus我们可以实现服务直接的异步通信。项目中,可以通过这种异步通信机制,帮我们实现配置文件的热部署(也就是,在远程git上修改了配置文件以后,bus自动帮我们把文件的修改同步到运行环境中)
08-28
08-28