一、服务提供者(Eureka Client)
实现原理:当client向server注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka server 从每个client实例接收心跳消息。 如果心跳超时,则通常将该实例从注册server中删除
创建一个生产者(服务提供者)步骤
新建maven模块,继承父pom,并命名为eureka-client
引入spring-cloud-starter-netflix-eureka-client 和 spring-boot-starter-web的jar包依赖
添加生产者服务启动类
添加配置文件(端口、注册中心地址等)
启动注册中心管理界面(可以看到注册的服务信息)
1. eureka注册中心模块pom.xml配置
<?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</groupId> <artifactId>longlonggo</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>com.longlonggo</groupId> <artifactId>eureka-client</artifactId> <version>0.0.1-SNAPSHOT</version> <name>eureka-client</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
2. 启动类(EurekaClientApplication)设置
package com.longlonggo.eurekaclient;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.EnableEurekaClient;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@EnableEurekaClient@RestControllerpublic class EurekaClientApplication { @Value("${server.port}") String port; //测试服务 @RequestMapping("/hi") public String home(@RequestParam(value = "name", defaultValue = "forezp") String name){ return "hi " + name + ", i am form port: " + port; } public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }
3. 配置文件(application.yml)设置
server: port: 8762 spring: application: name: service-hi eureka: client: serviceUrl: defaultZone: http://localhost:8888/eureka/
4. 访问配置中心
# 访问注册中心地址(可以看到已经有一个服务注册进来) http://localhost:8888/eureka/ # 直接访问服务(可以看到页面输出:hi zhansan,i am from port:8762) http://localhost:8762/hi?name=zhansan
因为原文用有道笔记编辑,特将笔记分享出来,有道笔记中持续更新,笔记地址:https://note.youdao.com/ynoteshare1/index.html?id=44ab1180e2d994218eae1617806486a7&type=notebook#/