Eureka注册中心
springcloud Eureka是基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。
- Eureka服务端即服务注册中心;
- Eureka客户端,主要处理服务的注册与发现。
客户端服务通过注解和参数配置方式,嵌入在客户端应用程序中
,应用启动时向注册中心注册自身服务,并周期性的发送心跳来更新它的服务;
<!--springcloud工程需要引入依赖-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--Eureka服务端需要引入依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<!--Eureka客户端需要引入依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
Ribbon实现客户端负载均衡
微服务中注册中心、配置中心、API网关往往需要独立部署,而Springcloud Ribbon不需要,他只是一个工具类框架。微服务间的调用,API网关的请求转发等内容,都是通过Ribbon来实现的,Feign也是基于Ribbon实现的工具。
提到负载均衡,一般指的是服务端负载均衡;
两者的区别在于客户端负载均衡是每个客户端都维护着自己要访问的服务清单,而这些服务清单来自于服务注册中心。
有了Ribbon,微服务架构中使用客户端负载均衡调用就变得简单了:
- 服务提供者只需要启动多个服务实例并注册到同一注册中心集群;
- 消费者通过调用被@LoadBalanced注解修饰过的RestTemplate来实现面向服务的接口调用。
Eureka+Ribbon
当在springcloud应用中同时引入SpringCloud Ribbon和Springcloud Eureka依赖时,会触发Eureka中实现的对Ribbon的自动化配置,这样我们的配置就变得更加简单。后续再补。。
ribbon是对服务之间调用做负载,是服务之间的负载均衡,zuul是可以对外部请求做负载均衡。