三步走:
1、添加依赖
2、添加application.yml配置文件,配置服务
3、添加启动类
下面是完整的eureka注册服务使用过程
1、创建父工程 spring-cloud-parent
设置maven
父工程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>
<groupId>com.demo0909</groupId>
<artifactId>spring-cloud-parent</artifactId>
<packaging>pom</packaging>
<version>1.0.0</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.11.RELEASE</version>
</parent>
<!-- 版本号 -->
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spring-cloud-version>Hoxton.SR12</spring-cloud-version>
</properties>
<!-- 引入Spring Cloud 依赖 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
2、在父工程上创建一个maven子工程,作为eureka server,提供注册服务
eureka-server 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">
<parent>
<artifactId>spring-cloud-parent</artifactId>
<groupId>com.demo0909</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eureka-server</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 引入eureka server 依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
在resources下创建application.yml配置文件
server:
port: 8761
#服务器名
spring:
application:
name: EUREKA-SERVER
# eureka 配置
eureka:
instance:
hostname: localhost # 主机名
prefer-ip-address: true #是否将自己的ip地址注册到eureka中
ip-address: 192.168.1.1 #设置当前实例ip
instance-id: ${eureka.instance.ip-address}:${spring.application.name}:${server.port} #设置web控制台显示的实例 id
client:
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka # eureka服务端地址,将来客户端使用该地址和eureka进行通信
添加主启动类EurekaServerApp.class
package com.springcloud.demo.ApplicationController;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer //启动eureka server
public class EurekaServerApp {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApp.class, args);
}
}
启动EurekaServerApp.class
访问:http://localhost:8761
出现以下界面表示成功
3、创建一个maven子工程goods-server作为eureka client
goods-server项目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">
<parent>
<artifactId>spring-cloud-parent</artifactId>
<groupId>com.demo0909</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>goods-server</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- eureka client 依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
</project>
resources目录下创建application.yml配置文件
server:
port: 8000
spring:
application:
name: GOODS-SERVER #服务名
eureka:
instance:
hostname: localhost
prefer-ip-address: true #是否将自己的ip地址注册到eureka中
ip-address: 192.168.1.1 #设置当前实例ip
instance-id: ${eureka.instance.ip-address}:${spring.application.name}:${server.port} #设置web控制台显示的实例 id
lease-renewal-interval-in-seconds: 30 #每次一eureka client向eureka server发送心跳的时间间隔
lease-expiration-duration-in-seconds: 90 #如果90秒内eureka server没有收到心跳包,注册中心删除client
client:
service-url:
defaultZone: http://localhost:8761/eureka #eureka服务端地址,客户端通过该地址与eureka通信
然后在goods-server在com.springcloud.demo.ApplicationController包下创建GoodsServer的主启动类GoodsServerApp.java
package com.springcloud.demo.ApplicationController;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan("com.springcloud")
@EnableEurekaClient
public class GoodsServerApp {
public static void main(String[] args) {
SpringApplication.run(GoodsServerApp.class, args);
}
}
在goods-server的com.springcloud.demo.Controller包下创建GoodsController.java
GoodsController.java
package com.springcloud.demo.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/goods")
public class GoodsController {
@GetMapping("/{id}")
public int findbyid(@PathVariable("id") int id) {
return id;
}
}
启动GoodsServerApp.java
到此goods-server服务已经注册到eureka注册中心了
测试
输入网址:http://localhost:8000/goods/6
结束!