SpringCloud Finchley基础教程:1,整体架构

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ifrozen/article/details/79815598

整体架构图

springCloud架构图

主要组件

  1. 对外网关api gateway(图中的Zuul Proxy):目前springCloud内有两种网关可选,一是netflix(一个公司)的zuul,二是springCloud自己的gateway。netflix的zuul由于不支持websocket和reactor响应式编程,以及zuul2.0的升级一直跳票,所以springCloud自己新开发了一套gateway。

    对外提供的所有接口API都是通过网关来进行调用的,对外只暴露网关的域名。也就是说,对于前端页面来说只能直接和网关服务来进行交互。

    api gateway会包括负载均衡,熔断,限流,自定义Filter等功能。

    api gateway

  2. 注册中心(图中的Eureka Server):注册中心springCloud内部也有两种可选,一是netflix的eureka server,二是开源项目Consul,两者各有优缺点,视具体项目情况选择。一般默认用Eureka即可。

    注册中心负责服务注册和服务发现,所有的服务都需要注册到注册中心,注册中心会管理一份注册列表。springCloud的注册中心是peer to peer模式,每个注册中心都是对等的,信息是同步的,不存在主从关系。
    Eureka Server

  3. 配置中心(图中的Config Server):项目中会有很多配置,可以正配置中心进行统一定义和管理,然后各个服务进行拉取即可。配置文件可以放到svn,git以及配置中心服务内部都可以。当配置文件的值改变后,可以通过Bus(图中的Webhook Cloud bus)来通知各个服务进行更新。
    Webhook Cloud bus
    现在一般都追求可视化的配置,可以将配置中心的连接到比如说polestar/apollo等可视化配置项目上进行管理。

  4. 服务间调用:springCloud的服务间调用使用Feign来实现,包含负载均衡ribbon和断路由Hystrix功能。

  5. 服务监控:根据目的不同,springCloud提供了Hystrix Dashboard来监控断路由状态:

    Hystrix Dashboard

    还提供了Sleuth来监控请求的链路:

    Sleuth

    通过springBoot的Admin监控还能看到各个服务的具体信息。日志等服务有开源项目ELK等,SQL监控有Druid等。

posted @ 2018-10-10 15:16  门罗的魔术师  阅读(165)  评论(0编辑  收藏  举报