写点什么

Spring Cloud:第二章:eureka 服务发现

作者:Java高工P7
  • 2021 年 11 月 11 日
  • 本文字数:1555 字

    阅读完需:约 5 分钟

想要实现一个服务注册中心的功能非常简单,只需要在项目的启动类 EurekaServerApplication 上使用 @EnableEurekaServer 注解即可


1 @EnableEurekaServer


2 @SpringBootApplication


3 public class EurekaServerApplication{


4


5 public static void main(String[] args) {


6 new SpringApplicationBuilder(EurekaServerApplicatio


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


n.class)


7 .web(true).run(args);


8 }


9 }


默认情况下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为,只需要在 application.properties 配置文件中增加如下信息:


1 spring.application.name=eureka-server


2 server.port=1001


3 eureka.instance.hostname=localhost


4 eureka.client.register-with-eureka=false


5 eureka.client.fetch-registry=false


启动 EurekaServerApplication,访问 http://localhost:9001/可以看到 Eureka 的页面,从红框的位置可以看到没有任务服务实例注册到当前的服务注册中心



服务提供方 :eureka-client


每一个实例注册之后需要向注册中心发送心跳,当 client 向 server 注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka server 从每个 client 实例接收心跳消息。 如果心跳超时,则通常将该实例从注册 server 中删除。


新建一个 springboot 项目:eureka-client,其 pom.xml 配置如下:


<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.cloud</groupId>


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


</dependency>


<dependency>


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


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


</dependency>


</dependencies>


<dependencyManagement>


<dependencies>


<dependency>


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


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


<version>Dalston.SR1</version>


<type>pom</type>


<scope>import</scope>


</dependency>


</dependencies>


</dependencyManagement>


想要实现一个服务提供方也很简单,只要在项目的启动类 EurekaClientApplication 上使用 @EnableEurekaClient 注解即可


1 @EnableEurekaClient


2 @SpringBootApplication


3 public class EurekaClientApplication {


4


5 public static void main(String[] args) {


6 new SpringApplicationBuilder(


7 EurekaClientApplication.class)


8 .web(true).run(args);


9 }


10 }


在 application.properties 中进行如下配置


spring.application.name=eureka-client


server.port=9002


eureka.client.serviceUrl.defaultZone=http://localhost:9001/eureka/


通过spring.application.name属性,我们可以指定微服务的名称后续在调用的时候只需要使用该名称就可以进行服务的访问。


eureka.client.serviceUrl.defaultZone属性对应服务注册中心的配置内容,指定服务注册中心的位置。


使用server.port属性设置不同的端口。


启动 EurekaClientApplication 类


刷新 http://localhost:9001/,可以看到咱们的服务提供方已经注册到了服务注册中心



在新建一个 DiscoveryController


使用 discoveryClient.getServices()获取已经注册的服务名,使用 @value 将配置文件中的信息赋值到 ip


@RestController


public class DiscoveryController {


@Autowired


private DiscoveryClient discoveryClient;


@Value("${server.port}")


private String ip;

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
Spring Cloud:第二章:eureka服务发现