Spring cloud eureka 入门使用及指导说明(单机篇)

Spring cloud eureka 入门使用及指导说明(单机篇)

基本概念和方案

    Eureka是基于REST(Representational State Transfer,代表性状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移。我们称这个服务为Eureka服务器。Eureka还带有一个基于Java的客户端组件,即Eureka客户端,它使与服务的交互更容易。

    客户端还有一个内置的负载均衡器,可以进行基本的循环负载均衡。在Netflix,一个更复杂的负载平衡器包装Eureka提供加权负载平衡的基础上的几个因素,如流量,资源使用情况,错误条件等,以提供卓越的弹性。

    集群方案逻辑架构图如下:

    上面的体系结构描述了Netflix如何部署Eureka,这是通常运行的方式。每个区域一个Eureka集群区域,负责该区域内的服务实例。每个区域至少有一台Eureka服务器来处理区域故障。

    服务注册Eureka,然后发送心跳每30秒更新一次租约。如果客户端无法续租几次,则会在大约90秒内将其从服务器注册表中取出。注册信息和更新被复制到群集中的所有Eureka节点。来自任何区域的客户端可以查找注册表信息(每30秒发生一次)以找到他们的服务(可能位于任何区域)并进行远程调用。

Eureka-Server

搭建Server端,有三种方式:

第一种,可以直接去到Maven库下载war,放入Tomcat中即可使用,地址:

http://search.maven.org/#search%7Cga%7C1%7Ceureka-server

第二种,可以去到Github下载Netflix/eureka最新的源码自己编译,地址:

https://github.com/Netflix/eureka

第三种,也是本章节主要的讲解,通过Spring boot创建一个Eureka Server项目。

1、pom.xml 引入Eureka Server依赖

 
  1. <parent>

  2.     <groupId>org.springframework.boot</groupId>

  3.     <artifactId>spring-boot-starter-parent</artifactId>

  4.   <version>1.5.9.RELEASE</version>

  5. <relativePath />

  6. </parent>

  7. <dependencies>

  8.     <dependency>

  9.         <groupId>org.springframework.cloud</groupId>

  10.     <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

  11. <version>1.4.2.RELEASE</version>

  12. </dependency>

  13. </dependencies>

  14.  
  15. <dependencyManagement>

  16.     <dependencies>

  17.        <dependency>

  18.     <groupId>org.springframework.cloud</groupId>

  19. <artifactId>spring-cloud-dependencies</artifactId>

  20. <version>Dalston.SR5</version>

  21. <type>pom</type>

  22. <scope>import</scope>

  23. </dependency>

  24.     </dependencies>

  25. </dependencyManagement>

2、配置文件application.properties

server.port=8765

 #表示是否注册Eureka服务器,因为自身作为服务注册中心,所以为false

eureka.client.registerWithEureka=false

#是否从eureka上获取注册信息,同上

eureka.client.fetchRegistry=false

3、创建一个启动类EurekaServerApplication,并启动

运行启动类,访问 http://127.0.0.1:8761/,查看系统状态,如下图:

Eureka-Client

1、pom.xml 引入Eureka Client依赖

 
  1. <parent>

  2.     <groupId>org.springframework.boot</groupId>

  3. <artifactId>spring-boot-starter-parent</artifactId>

  4. <version>1.5.9.RELEASE</version>

  5. <relativePath />

  6. </parent>

  7.  
  8. <dependencies>

  9.     <dependency>

  10.     <groupId>org.springframework.cloud</groupId>

  11. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

  12.    <version>1.4.2.RELEASE</version>

  13.    </dependency>

  14. </dependencies>

  15.  
  16. <dependencyManagement>

  17.     <dependencies>

  18.     <dependency>

  19.     <groupId>org.springframework.cloud</groupId>

  20.    <artifactId>spring-cloud-dependencies</artifactId>

  21. <version>Dalston.SR5</version>

  22. <type>pom</type>

  23. <scope>import</scope>

  24. </dependency>

  25. </dependencies>

  26. </dependencyManagement>

2、配置文件application.properties

server.port=18765

  连接注册中心的服务地址

eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka

3、创建一个启动类EurekaServerApplication,并启动

相关说明

1、pom.xml引入包的选择问题

使用最新的 spring-cloud-starter-netflix-eureka-server,而spring-cloud-starter-eureka-server已经过期。

2、@EnableEurekaClient和@EnableDiscoveryClient的区别

spring cloud中discovery service有许多种实现(eureka、consul、zookeeper等等),@EnableDiscoveryClient基于spring-cloud-commons,@EnableEurekaClient基于spring-cloud-netflix。

就是如果选用的注册中心是eureka,那么就推荐@EnableEurekaClient,如果是其他的注册中心,那么推荐使用@EnableDiscoveryClient。

猜你喜欢

转载自blog.csdn.net/zhangbijun1230/article/details/84593838
今日推荐