Spring Cloud Netflix 微服务架构分享

一 专业术语

结构图

Eureka:服务注册中心。
Zuul:网关,全部的客户端请求经过这个网关访问后台的服务。
Ribbon:即负载均衡,Zuul网关将一个请求发送给某一个服务的应用的时候,若是一个服务启动了多个实例,就会经过Ribbon来经过必定的负载均衡策略来发送给某一个服务实例。
Feign:服务客户端。
Hystrix:监控和断路器。咱们只须要在服务接口上添加Hystrix标签,就能够实现对这个接口的监控和断路器功能。
Hystrix Dashboard:监控面板,他提供了一个界面,能够监控各个服务上的服务调用所消耗的时间等。
Turbine:监控聚合,使用Hystrix监控,咱们须要打开每个服务实例的监控信息来查看。而Turbine能够帮助咱们把全部的服务实例的监控信息聚合到一个地方统一查看。这样就不须要挨个打开一个个的页面一个个查看。java

二 Spring Cloud Netflix说明

2.1 拓扑图

结构图
Spring Cloud Netflix提供了服务发现、断路由、智能路由、服务监控等相关功能,供开发者快速创建弹性稳定的微服务集群。git

2.2 详细说明

2.2.1 服务注册中心(eureka_server)

Spring Cloud中全部应用提供的服务须要去服务中心进行注册,供其它服务进行发现与调用。例如:拓扑图中的eureka_client集群应用,zuul路由应用。为了发现与调用其它服务,启动时须要前往eureka_server进行注册。服务注册中心的默认访问地址为:http://ip: 8761,此端口尽可能不要修改。
注册中心
截图中红色方框标注为,注册的相应应用服务。github

2.2.2 服务集群

拓扑图中的eureka_client集群为应用集群,集群中的应用服务可以相互调用。应用间的调用方式能够经过两种方式:第一种ribbon+restTemplate,第二种feign方式。此两种方式底层经过http的方式进行通讯。
具体配置实例:web

  • 方式一:ribbon+restTemplate
    这里写图片描述
    这里写图片描述spring

  • 方式二:feign
    这里写图片描述bootstrap

    2.2.3 zuul网关

    Zuul网关,提供路由的功能,将外部的http请求经过相应配置映射到内部的具体应用服务。
    具体配置实例:
    这里写图片描述网络

三 具体应用示例

3.1 示例网络拓扑

这里写图片描述

3.2 代码结构

这里写图片描述

   opentsp-example-spring-cloud-eureka-server:服务注册中心
   opentsp-example-spring-cloud-eureka-client:应用服务集群
   opentsp-example-spring-cloud-eureka-feign:feign调用方式
   opentsp-example-spring-cloud-eureka-ribbon:ribbon+restTemplate调用方式
   opentsp-example-spring-cloud-zuul:网关路由,外部接口

具体应用配置,查看Application.java与bootstrap.yml。

3.3 代码示例

github示例代码地址负载均衡

3.4 具体启动调用说明

请结合文档所说明,以及代码,启动工程进行调用查看效果。