spring-cloud eureka server 的发现客户端与注册例子

今天在公司测试Eureka server 与client 的发现与注册,可能是碰见鬼了,或者下载了假的jar包,配置都是按照网上文档做的,server 与客户端都跑起来了,但在eureka server 中就是查看不到已经运行起来的服务端。 最关键的是,在客户端也是配置了eureka.client.serviceUrl.defaultZone 地址,也加入相应的依赖包,而且也加入了@@EnableDiscoveryClient, 但无论如何还是发现不了客户端,后来就算了,晚上回到家,按照同样的方法,唯一不同的是换了 依赖的版本,就实现了。可以发现服务了。简单记录下配置过程。


spring-cloud eureka  服务端实现。其实最关键的就是pom文件配对,依赖配好,然后加上注解@EnableEurekaServer就可以了。
程序代码 程序代码

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.yihaomen</groupId>
  <artifactId>springcloud-001-eurekaserver</artifactId>
  <packaging>jar</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>springcloud-001-eurekaserver Maven Webapp</name>
  <url>http://maven.apache.org</url>
  
  <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
    </parent>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
    </dependencies>
  
    <build>
        <finalName>springcloud-001-eurekaserver</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>



主程序启动代码:
程序代码 程序代码

package com.yihaomen.eurekaserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class ApplicationEurekaServer {
    
    public static void main(String[] args) {
        SpringApplication.run(ApplicationEurekaServer.class, args);
    }

}


spring-cloud eureka 客户端实现,这里用了我原来用spring-boot 的一个例子,可以参考这里:Spring-boot 与Mybatis集成, 附源码下载 , 在这个例子的基础上实现eureka client. 最主要的变化有如下几点:
1. 加入eureka 相关的jar依赖,修改配置pom.xml文件
2. 增加相关的配置文件, 可以是properties文件或者yml 文件
3. 在主程序上加上注解@EnableDiscoveryClient 或者@EnableEurekaClient

对于第1点,主要是需要与服务端的版本保持一致。另外加入eureka相关配置。主要变化如下:
程序代码 程序代码

增加
<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
dependencies 中增加:
<!-- eureka client add -->
     <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
     <!-- eureka client end -->


对于第2点配置文件的更改,主要增加了一个配置文件bootstrap.yml,采用yml格式:
程序代码 程序代码

spring:
  application:
    name: microservice-user
server:
  port: 8888
eureka:
  client:
    healthcheck:
      enabled: true
    serviceUrl:
      defaultZone: http://localhost:8761/eureka
  instance:
    prefer-ip-address: false


对于第3点,就更简单了
程序代码 程序代码

@SpringBootApplication
@EnableDiscoveryClient
@MapperScan("com.yihaomen.*")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}


基本是与公司相同的配置,但在家里就可以成功,在公司死活没有成功,我也服气了,唯一不同的是,公司不能上网,只有 1.4.1 版本,我在家用的是 1.5.2版本。

提供测试代码下载:
下载文件 spring-cloud-eureka demo

下载文件 spring-cloud-eureka-client demo


除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: spring-cloud spring-boot
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.