不为有趣之事,何遣有涯之生
不失其所者久,死而不亡者寿

SpringCloud微服务系列(1) 概念名词入门

微服务与SpringCloud入门

微服务的实现方式

  • 1 Doubbo
  • 2 SpringCloud
  • 3 其他开源实现

参考链接

Spring Cloud:http://projects.spring.io/spring-cloud
Dubbo:http://dubbo.io
Dropwizard:http://www.dropwizard.io
Consl、etcd &etc.

SpringCloud中的概念名字一览

Eureka Server


- 依赖于:spring-cloud-starter-eureka-server (默认是服务端和客户端为一体的)
- 作为服务使用时,一般需要关闭掉客户端的功能
- 注册中心,可以注册服务的提供者,服务的调用者,服务网关,服务跟踪者,配置服务等
- 当需要多个注册中心时,可以配置和其他注册中心同步,实现高可用

Eureka Client


- 依赖于:spring-cloud-starter-eureka-server
- 任何需要注册到注册中心的服务,都是Eureka Clinet,可以是服务提供者,调用者,服务网关,服务跟踪者,配置服务等

Ribbon


- 客户端的负载均衡器
- ribbon是一个负载均衡客户端,可以很好的控制http和tcp的一些行为
- 依赖于:spring-cloud-starter-eureka-server,spring-cloud-starter-ribbon
- 结合restTemplate使用,通过@ LoadBalanced注册表明,这个restTemplate是负载均衡的
- 支持简单的URL访问,复杂的不太适合
- 可以单独使用,不依赖于Eureka

Hystrix

  • 断路器,防止微服务出现雪崩现象
  • 依赖于:spring-cloud-starter-hystrix
  • 有的SpringCloud版本默认已经为Feign整合了Hystrix(亲自测试Edgware是没有自动支持的,需要添加依赖并在配置文件中开启),我们要做的是自定义添加回退函数和原因

Feign


- 它是一个声明式的http客户端负载功能,其实也是依赖Ribbon
- 使用的时候坑还是有点多的,要多注意
- 通过注解方式,弥补了Ribbon访问时只适合URL的方式
- 依赖于:spring-cloud-starter-eureka-server,spring-cloud-starter-feign(包含了Ribbon,Hystrix)
- Feign有自己的注解,但是spring为了降低大家的使用成本,对其做了一些封装改造,很多的地方可以使用spring的注解来操作
- 使用注解@FeignClient(value = "服务名")来指定哪个服务

Zuul


- 网关中心,外部客户端统一调用网关,由网关协调各服务调用
- 依赖于:spring-cloud-starter-zuul
- 网关中心好处:易于监控,易于认证,减少客户端与各个微服务之间的交互次数

SpringCloudConfig


- 分布式配置中心,分为服务端server和客户端client
- 依赖于:spring-cloud-config-server,spring-cloud-starter-eureka-server
- config-client从config-server获取了foo的属性
- config-server从git仓库中获取配置,仓库可以是本地也可以是远程

  • http请求地址和资源文件映射如下:
    /{application}/{profile}[/{label}]
    /{application}-{profile}.yml
    /{label}/{application}-{profile}.yml
    /{application}-{profile}.properties
    /{label}/{application}-{profile}.properties

Spring Cloud Bus

  • 消息总线

Sleuth

  • 追踪器,为spring cloud 提供了分布式跟踪的解决方案
  • 依赖于: spring-cloud-starter-sleuth
  • 一般还会同其他的日志系统结合使用:ELK

SpringCloud整体图

未经允许不得转载:菡萏如佳人 » SpringCloud微服务系列(1)

欢迎加入极客江湖

进入江湖关于作者