服务注册与发现---eureka

Posted dalaoyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务注册与发现---eureka相关的知识,希望对你有一定的参考价值。

eureka简介:云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。



话不多说直接上代码


首先新建一个springcloud eurekaserver项目。

pom文件如下:

```

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>


<groupId>com.dalaoyang</groupId>

<artifactId>springcloud_eureka_server</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>


<name>springcloud_eureka_server</name>

<description>springcloud_eureka_server</description>


<parent>

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

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

<version>1.5.9.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>


<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>


<dependencies>

<dependency>

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

<artifactId>spring-boot-starter</artifactId>

</dependency>


<dependency>

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

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>


<dependency>

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

<artifactId>spring-cloud-starter-eureka-server</artifactId>

</dependency>

</dependencies>



<dependencyManagement>

<dependencies>

<dependency>

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

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

<version>Edgware.SR1</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>


<build>

<plugins>

<plugin>

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

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>



</project>


```



然后在application.properties加入如下配置:

```

server.port=8761


eureka.instance.hostname=localhost

eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/


##禁止自己向自己注册

eureka.client.register-with-eureka=false

eureka.client.fetch-registry=false

```


最后只需在启动类application上加入注解@EnableEurekaServer 

开启服务注册中心,然后启动项目,访问[http://localhost:8761/](http://localhost:8761/)可以看到如下页面。



![](https://user-gold-cdn.xitu.io/2018/3/23/16250f06f527d858?w=2402&h=1452&f=jpeg&s=346171)


下图可见当前并没有实例



![](https://user-gold-cdn.xitu.io/2018/3/23/16250f2c6c84b6a5?w=2380&h=1368&f=jpeg&s=276774)


然后新建一个eureka-client项目,pom文件如下


```

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>


<groupId>com.dalaoyang</groupId>

<artifactId>springcloud_eureka_client</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>


<name>springcloud_eureka_client</name>

<description>springcloud_eureka_client</description>


<parent>

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

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

<version>1.5.9.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>


<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

<spring-cloud.version>Edgware.SR1</spring-cloud.version>

</properties>


<dependencies>

<dependency>

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

<artifactId>spring-cloud-starter-eureka</artifactId>

</dependency>


<dependency>

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

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>


<dependencyManagement>

<dependencies>

<dependency>

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

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

<version>${spring-cloud.version}</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>


<build>

<plugins>

<plugin>

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

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>



</project>

```


application.properties如下所示:

```

##端口号

server.port=8762


spring.application.name=eureka_client


eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

```


启动类appliction加入@EnableEurekaClient注解,application代码如下

```

package com.dalaoyang;


import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;


@SpringBootApplication

@EnableEurekaClient

public class SpringcloudEurekaClientApplication {


public static void main(String[] args) {

SpringApplication.run(SpringcloudEurekaClientApplication.class, args);

}

}

```


启动eureka-client,在观察eurekaserver管理页面


![](https://user-gold-cdn.xitu.io/2018/3/23/16250f643b7bd3d1?w=2378&h=1360&f=jpeg&s=288805)


这时就可以看到一个实例已经注册成功了,服务名为EUREKA_CLIENT ,端口为8762



源码下载 :[大老杨码云](https://gitee.com/dalaoyang/springboot_learn)


以上是关于服务注册与发现---eureka的主要内容,如果未能解决你的问题,请参考以下文章

Nacos服务注册与发现的原理

SpringCloud Eureka服务注册与发现

Eureka服务注册与发现

Spring Cloud Eureka服务注册与发现

Spring Cloud Eureka服务注册与发现

Eureka服务注册发现原理流程