一、创建spring cloud项目
大致思路,创建springcloud项目,将不同端口的两个服务注册到eureka上;
1.1 引入maven包
引入maven包,完整pom文件见文章末尾
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
1.2 Application文件添加注解
入口文件添加注解”@EnableEurekaServer“
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
1.3 修改yml文件
为测试效果需要启动两个服务,将配置文件进行分离方便服务启用。
我修改了本地的路由表信息,将”euk1.com“和”euk2.com“映射为127.0.0.1
application.yml文件配置内容如下:
# 应用名称
spring:
profiles:
active: euk1
application:
name: EurekaServer
application-euk1.yml配置文件如下:
server:
port: 7001
eureka:
instance:
hostname: euk1.com
client:
#设置服务注册中心的URL,用于client和server端交流
service-url:
defaultZone: http://euk1.com:7001/eureka/
application-euk2.yml配置文件如下:
我修改了本地的路由表信息,如果没有修改,将”euk2.com“替换为localhost即可
server:
port: 7001
eureka:
instance:
hostname: euk2.com
client:
#设置服务注册中心的URL,用于client和server端交流
service-url:
defaultZone: http://euk1.com:7001/eureka/
二、校验
通过更换端口,启动不同服务。注意:eureka是30秒做一次心跳检测,所以会有一定的延迟。
idea服务启动成功
游览器访问 ”http://euk1.com:7001/“ 未配置路由,访问”http://localhost:7001/“
服务注册成功
三、补充配置
eureka配置补充
#是否将自己注册到Eureka Server,默认为true,设置成false,表明该服务不会向eureka注册自己的信息
eureka.client.register-with-eureka=false
#是否从eureka server获取注册信息,不需要同步其他节点数据,用false
eureka.client.fetch-registry=false
附件
完整pom文件
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.springcloud</groupId>
<artifactId>Eureka-Server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Eureka-Server</name>
<description>Eureka-Server</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<configuration>
<mainClass>com.dxz.eurekaserver.EurekaServerApplication</mainClass>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>