前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跟我学Spring Cloud(Finchley版)-05-服务注册与服务发现-Eureka入门

跟我学Spring Cloud(Finchley版)-05-服务注册与服务发现-Eureka入门

作者头像
用户1516716
发布2019-07-10 14:52:25
4690
发布2019-07-10 14:52:25
举报
文章被收录于专栏:A周立SpringCloud

本节讲解基于Eureka的服务发现。

Eureka简介

Eureka是Netflix开源的服务发现组件,本身是一个基于REST的服务,包含Server和Client两部分,Spring Cloud将它集成在子项目Spring Cloud Netflix中。

拓展阅读

  • Eureka的GitHub:https://github.com/Netflix/Eureka
  • Netflix是一家在线影片租赁提供商。
  • Eureka的典故:阿基米德发现浮力时,非常开心,于是说:“Eureka!”意思是“我找到了!”。Netflix将它们的服务发现组件命名为Eureka实在是非常形象。

理解跟我学Spring Cloud(Finchley版)-04-服务注册与服务发现-原理剖析后,我们来编写基于Eureka的服务发现——首先编写一个Eureka Server,然后将前文的微服务都注册到Eureka Server上。

编写Eureka Server

1 加依赖

代码语言:javascript
复制
<dependencies>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  </dependency>
</dependencies>

2 加注解

代码语言:javascript
复制
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
  public static void main(String[] args) {
    SpringApplication.run(EurekaApplication.class, args);
  }
}

3 写配置

代码语言:javascript
复制
server:
  port: 8761
eureka:
  client:
    # 是否要注册到其他Eureka Server实例
    register-with-eureka: false
    # 是否要从其他Eureka Server实例获取数据
    fetch-registry: false
    service-url: 
      defaultZone: http://localhost:8761/eureka/

TIPS

这里,大家可先不去探究 registerWithEureka 以及 fetchRegistry 究竟是什么鬼,笔者将在下一节为大家揭晓。

将应用注册到Eureka Server上

1 加依赖

代码语言:javascript
复制
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2 加注解

代码语言:javascript
复制
@SpringBootApplication
public class ProviderUserApplication {
  public static void main(String[] args) {
    SpringApplication.run(ProviderUserApplication.class, args);
  }
}

注意:早期的版本(Dalston及更早版本)还需在启动类上添加注解 @EnableDiscoveryClient@EnableEurekaClient ,从Edgware开始,该注解可省略。

3 添加配置:

代码语言:javascript
复制
spring:
  application:
    # 指定注册到eureka server上的服务名称,对于电影微服务,本系列将名称设为microservice-consumer-movie
    name: microservice-provider-user
eureka:
  client:
    service-url:
      # 指定eureka server通信地址,注意/eureka/小尾巴不能少
      defaultZone: http://localhost:8761/eureka/
  instance:
    # 是否注册IP到eureka server,如不指定或设为false,那就会注册主机名到eureka server
    prefer-ip-address: true

测试

1 依次启动Eureka Server以及用户微服务、电影微服务;

2 访问 http://localhost:8761 可观察到类似如下界面:

3 将用户微服务停止,可看到Eureka Server首页变成类似如下界面:

配套代码

GitHub

  • Eureka Server:https://github.com/eacdy/spring-cloud-study/tree/master/2018-Finchley/microservice-discovery-eureka
  • microservice-provider-user:https://www.github.com/eacdy/spring-cloud-study/tree/master/2018-Finchley/microservice-provider-user
  • microservice-consumer-movie:https://github.com/eacdy/spring-cloud-study/tree/master/2018-Finchley/microservice-consumer-movie

Gitee

  • Eureka Server:https://gitee.com/itmuch/spring-cloud-study/tree/master/2018-Finchley/microservice-discovery-eureka
  • microservice-provider-user:https://gitee.com/itmuch/spring-cloud-study/tree/master/2018-Finchley/microservice-provider-user
  • microservice-consumer-movie:https://gitee.com/itmuch/spring-cloud-study/tree/master/2018-Finchley/microservice-consumer-movie
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT牧场 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Eureka简介
  • 编写Eureka Server
  • 将应用注册到Eureka Server上
  • 测试
  • 配套代码
    • GitHub
      • Gitee
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档