创建、配置Eureka Server 和 Client

spring cloud学习笔记

上文 这是第一篇 :)
下文 使用多个 Eureka Server

开发环境 Windows10、 IDEA 2018.1.3 ,Spring Boot 版本 2.0.2.RELEASE

通过 idea 创建Eureka server项目

New Project-> Spring Initalizr
next 修改group 和 artifact
next 我使用的是2.0.2版本的SpringBoot 注意在选择依赖时 勾选 Web 和 Eureka Server



一路确定 完成创建。

配置启动项目

首先就有一个坑,在墙内我们喜欢用阿里云的maven仓库,
SpringBoot 2.0.2.RELEASE版本对应的 Spring Cloud 版本是Finchley.RC2,通过Spring Initalizr创建的项目会自动选择合适的版本。
但是阿里云仓库里似乎没有这个版本的 Spring Cloud ,导致 Eureka 相关的包都找不到。

哎,我也是搞了好久才发现是这个问题,以前都以为阿里云maven仓库应该是完整的。后来我发现这个锅也不能让阿里仓库背,maven中央仓库的版本甚至比阿里仓库还低,在pom中手动添加spring官方仓库,里面有所需版本 Finchley.RC2。菜鸟学习技术需谨慎啊,盲目使用最新版本,给自己带来不必要的麻烦。

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

使用 application.yml 的配置

server:
  port: 8761 # 8761是eureka server的默认端口
eureka:
  server:
    enable-self-preservation: false #防止由于Eureka的机制导致Client被错误显示在线 仅在开发环境使用
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/ #这便是此eureka server的应用注册地址
    register-with-eureka: false #不显示对server应用的注册
spring:
  application:
    name: eureka-demo

记得在springboot 启动类上加上注解@EnableEurekaServer

package lzlz.demo.springcloud.eureka;

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

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {

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

现在就可以启动啦,红色的警告部分就是配置enable-self-preservation: false造成的

image.png

也可以通过 mvn clean package 把此项目编译成jar包方便使用,jar包在 target目录下。

创建 配置Eureka Client项目

New Project-> Spring Initalizr
next 修改group 和 artifact
next 我使用的是2.0.2版本的SpringBoot 选择 Web 和 Eureka Discovery 依赖


一路确定 完成创建。

使用 application.yml 的配置

server:
  port: 8081
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/ #注册到刚才那台Eureka Server地址
spring:
  application:
    name: client-0

记得在 SpringBoot 启动类上加上注解@EnableDiscoveryClient

运行Server 和 Client

可以看到名为 client-0 的应用已经注册到 Eureka

注意 Eureka 服务端和客户端的连接有心跳检测的机制,因此客户端连接或者断开连接都可能不是即时反应的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,040评论 6 342
  • (git上的源码:https://gitee.com/rain7564/spring_microservices_...
    sprainkle阅读 11,805评论 4 25
  • 我想好好的爱孩子,在他们的童年,有辛苦学习的过程。也有朋友快乐玩耍的记忆。有为了学习而严厉指责管教的母亲,也...
    卓玥阅读 4,134评论 0 2
  • 我太小看面试难度了,本来以为这样的题目不会遇到,但是小米面试的时候遇到了,好在没做出来也过了,所以一定要搞懂啊。 ...
    小鲜贝阅读 4,766评论 0 0