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

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

基本概念和方案

    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依赖
<parent>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-parent</artifactId>  
    <version>1.5.9.RELEASE</version>  
    <relativePath /> 
</parent>  
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        <version>1.4.2.RELEASE</version>
    </dependency>
</dependencies>
   
<dependencyManagement>
    <dependencies>
        <dependency>
	    <groupId>org.springframework.cloud</groupId>
	    <artifactId>spring-cloud-dependencies</artifactId>
	    <version>Dalston.SR5</version>
	    <type>pom</type>
	    <scope>import</scope>
	</dependency>
    </dependencies>
</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依赖
<parent>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-parent</artifactId>  
    <version>1.5.9.RELEASE</version>  
    <relativePath /> 
</parent>  
  
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
    	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        <version>1.4.2.RELEASE</version>
    </dependency>
</dependencies>
   
<dependencyManagement>
    <dependencies>
        <dependency>
	    <groupId>org.springframework.cloud</groupId>
	    <artifactId>spring-cloud-dependencies</artifactId>
	    <version>Dalston.SR5</version>
	    <type>pom</type>
	    <scope>import</scope>
	</dependency>
    </dependencies>
</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。

展开阅读全文

没有更多推荐了,返回首页