springcloud之eureka小栗子

it2026-08-06  8

写在前面

本例采用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注册信息

最后:都让开,我要喝瑞幸

最新回复(0)