写在前面
本例采用maven的模块项目进行说明。源码点这里。
1:项目结构说明
由以下三个项目构成:
myeureka:作为父项目
my
-enreka
-server:作为eureka服务端
myeureka
-client:作为eureka客户端
2:创建父项目myeureka
2.1:创建项目
new-project,选择左侧的Maven: 然后输入GAV,finish后删除src因为是作为父项目所以不需要源代码目录,最后只保留pom.xml。
2.2:设置springboot的parent的starter的pom依赖
<parent>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-parent
</artifactId>
<version>2.0.3.RELEASE
</version>
<relativePath/>
</parent>
2.3:设置springcloud的pom依赖
这里以dependecyManagement方式进行设置:
<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>
2.4:引入maven的springboot插件
引入后可以通过maven来运行springboot程序:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-maven-plugin
</artifactId>
</plugin>
</plugins>
</build>
2.5:完整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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0
</modelVersion>
<groupId>dongshi.daddy
</groupId>
<artifactId>my-eureka
</artifactId>
<version>1.0-SNAPSHOT
</version>
<packaging>pom
</packaging>
<parent>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-parent
</artifactId>
<version>2.0.3.RELEASE
</version>
<relativePath/>
</parent>
<modules>
<module>my-enreka-server
</module>
<module>myeureka-client
</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8
</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8
</project.reporting.outputEncoding>
<java.version>1.8
</java.version>
<spring-cloud.version>Finchley.RELEASE
</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-test
</artifactId>
<scope>test
</scope>
</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>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-maven-plugin
</artifactId>
</plugin>
</plugins>
</build>
</project>
3:创建子项目my-enreka-server
3.1:创建项目
鼠标选中父项目,new->module,选择左侧的Spring Initialzr: next后,选择java版本为8,type为maven,然后录入gav,然后一路next,最后finish。
3.2:在父项目中配置模块
在myeureka的pom中添加如下内容:
<modules>
<module>my-enreka-server
</module>
</modules>
3.3:依赖父项目
<parent>
<groupId>dongshi.daddy
</groupId>
<artifactId>my-eureka
</artifactId>
<version>1.0-SNAPSHOT
</version>
</parent>
3.4:引入eureka-server依赖
<dependencies>
<dependency>
<groupId>org.springframework.cloud
</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server
</artifactId>
</dependency>
</dependencies>
3.5:完整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>dongshi.daddy
</groupId>
<artifactId>my-enreka-server
</artifactId>
<version>0.0.1-SNAPSHOT
</version>
<packaging>jar
</packaging>
<name>my-enreka-server
</name>
<description>Demo project for Spring Boot
</description>
<parent>
<groupId>dongshi.daddy
</groupId>
<artifactId>my-eureka
</artifactId>
<version>1.0-SNAPSHOT
</version>
</parent>
<dependencies>
<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>
</plugin>
</plugins>
</build>
</project>
3.6:配置eureka的配置
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http
://$
{eureka.instance.hostname
}:$
{server.port
}/eureka/
spring:
application:
name: eurka
-server
3.7:启用eureka
添加@EnableEurekaServer:
@SpringBootApplication
@EnableEurekaServer
public class MyEnrekaServerApplication {
public static void main(String
[] args
) {
SpringApplication
.run(MyEnrekaServerApplication
.class, args
);
}
}
3.8:启用服务并测试
4:创建子项目myeureka-client
4.1:创建项目
鼠标选中父项目,new->module,选择左侧的Spring Initialzr: next后,选择java版本为8,type为maven,然后录入gav,然后一路next,最后finish。
4.2:在父项目中配置模块
在myeureka的pom中添加如下内容:
<modules>
<module>myeureka-client
</module>
</modules>
4.3:依赖父项目
<parent>
<groupId>dongshi.daddy
</groupId>
<artifactId>my-eureka
</artifactId>
<version>1.0-SNAPSHOT
</version>
</parent>
4.4:引入依赖
<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>
4.5:完整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>dongshi.daddy
</groupId>
<artifactId>myeureka-client
</artifactId>
<version>0.0.1-SNAPSHOT
</version>
<packaging>jar
</packaging>
<name>myeureka-client
</name>
<description>Demo project for Spring Boot
</description>
<parent>
<groupId>dongshi.daddy
</groupId>
<artifactId>my-eureka
</artifactId>
<version>1.0-SNAPSHOT
</version>
</parent>
<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>
4.6:配置eureka的配置
server:
port: 8762
spring:
application:
name: dongshidaddy
-first
-eureka
-client
eureka:
client:
serviceUrl:
defaultZone: http
://localhost
:8761/eureka/
除了端口号,还配置了eureka服务端的地址,从而可以向服务端注册自己对外提供服务。
4.7:测试
启动eureka的服务端启动eureka的客户端查看客户端注册信息日志
2020-10-23 11:16:25.920 INFO 49924 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_DONGSHIDADDY-FIRST-EUREKA-CLIENT/cj-PC:dongshidaddy-first-eureka-client:8762: registering service...
2020-10-23 11:16:26.001 INFO 49924 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8762 (http) with context path ''
2020-10-23 11:16:26.002 INFO 49924 --- [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8762
2020-10-23 11:16:26.005 INFO 49924 --- [ main] d.d.m.MyeurekaClientApplication : Started MyeurekaClientApplication in 7.507 seconds (JVM running for 8.404)
2020-10-23 11:16:26.129 INFO 49924 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_DONGSHIDADDY-FIRST-EUREKA-CLIENT/cj-PC:dongshidaddy-first-eureka-client:8762 - registration status: 204
查看服务端日志
2020-10-23 11:16:26.126 INFO 53072 --- [nio-8761-exec-2] c.n.e.registry.AbstractInstanceRegistry : Registered instance DONGSHIDADDY-FIRST-EUREKA-CLIENT/cj-PC:dongshidaddy-first-eureka-client:8762 with status UP (replication=false)
查看eureka注册信息
最后:都让开,我要喝瑞幸