概述
当 Client 向 Server 注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka Server 从每个 Client 实例接收心跳消息。 如果心跳超时,则通常将该实例从注册 Server 中删除。
创建服务提供者
POM
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 <?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 > <parent > <groupId > com.example</groupId > <artifactId > hello-spring-cloud-dependencies</artifactId > <version > 1.0.0-SNAPSHOT</version > <relativePath > ../hello-spring-cloud-dependencies/pom.xml</relativePath > </parent > <artifactId > hello-spring-cloud-service-admin</artifactId > <packaging > jar</packaging > <name > hello-spring-cloud-service-admin</name > <url > http://wvincen.gitee.io</url > <inceptionYear > 2019-Now</inceptionYear > <dependencies > <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-netflix-eureka-server</artifactId > </dependency > </dependencies > <build > <plugins > <plugin > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-maven-plugin</artifactId > <configuration > <mainClass > com.example.hello.spring.cloud.service.admin.ServiceAdminApplication</mainClass > </configuration > </plugin > </plugins > </build > </project >
Application
通过注解 @EnableEurekaClient 表明自己是一个 Eureka Client .
1 2 3 4 5 6 7 8 9 10 11 12 13 package com.funtl.hello.spring.cloud.service.admin;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.EnableEurekaClient;@SpringBootApplication @EnableEurekaClient public class ServiceAdminApplication { public static void main (String[] args) { SpringApplication.run(ServiceAdminApplication.class, args); } }
application.yml
1 2 3 4 5 6 7 8 9 10 11 spring: application: name: hello-spring-cloud-service-admin server: port: 8762 eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/
注意 : 需要指明 spring.application.name,这个很重要,这在以后的服务与服务之间相互调用一般都是根据这个 name
Controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package com.funtl.hello.spring.cloud.service.admin.controller;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestController public class AdminController { @Value("${server.port}") private String port; @RequestMapping(value = "hi", method = RequestMethod.GET) public String sayHi (@RequestParam(value = "message") String message) { return String.format("Hi,your message is : %s i am from port : %s" , message, port); } }
操作界面
启动工程,打开 http://localhost:8761 ,即 Eureka Server 的网址:
你会发现一个服务已经注册在服务中了,服务名为 HELLO-SPRING-CLOUD-SERVICE-ADMIN ,端口为 8762
这时打开 http://localhost:8762/hi?message=HelloSpring ,你会在浏览器上看到 :
1 Hi,your message is :"HelloSpring" i am from port:8762
案例源码:https://github.com/V-Vincen/hello-spring-cloud
If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !