1、使用自己习惯的 IDE 创建一个 Maven 项目 “microservicecloud” 作为父工程
2、修改父工程 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.lakey.springcloud</groupId>
<artifactId>microservicecloud</artifactId>
<version>1.0-SNAPSHOT</version>
<name>microservicecloud</name>
<description>Cloud Template</description>
<packaging>pom</packaging>
<!-- SpringBoot 父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/> <!-- 从 Maven 仓库查找父级 -->
</parent>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
</properties>
<dependencies>
<!-- SpringBoot 测试依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!-- 只引用但不引入 -->
<dependencyManagement>
<dependencies>
<!-- SpringCloud 依赖 -->
<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>
<!-- 子模块,在父工程下新建子模块后自动生成,不是固定写法,仅供参考 -->
<modules>
<module>eureka-8101</module>
<module>provider-8201</module>
<module>provider-8202</module>
<module>consumer-ribbon-8401</module>
<module>consumer-feign-8301</module>
<module>zuul-8501</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3、在父工程下新建 Module,也是 Maven 工程,名称为 “eureka-8101”
4、修改 “eureka-8101” 工程 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>microservicecloud</artifactId>
<groupId>com.lakey.springcloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eureka-8101</artifactId>
<name>eureka-8101</name>
<description>Eureka 8101</description>
<dependencies>
<!-- Eureka 服务端依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
5、在 java 路径下创建目录 “com.lakey.springcloud” 并添加启动类 Eureka8101Application.java
package com.lakey.springcloud;
import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer // EurekaServer服务器端启动类,接受其它微服务注册
public class Eureka8101Application {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(Eureka8101Application.class);
application.setBannerMode(Banner.Mode.OFF);// 不输出Banner
application.run(args);
System.out.println(" _____ _ _ ____ _____ _ __ _ ___ _ ___ _ \n" +
" | ____| | | | | | _ \\ | ____| | |/ / / \\ ( _ ) / | / _ \\ / |\n" +
" | _| | | | | | |_) | | _| | ' / / _ \\ / _ \\ | | | | | | | |\n" +
" | |___ | |_| | | _ < | |___ | . \\ / ___ \\ | (_) | | | | |_| | | |\n" +
" |_____| \\___/ |_| \\_\\ |_____| |_|\\_\\ /_/ \\_\\ \\___/ |_| \\___/ |_|");
}
}
6、在 resources 路径下添加配置文件 application.yml
# 服务器配置
server:
port: 8101
# Eureka 配置
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false # false 表示不向注册中心注册自己
fetchRegistry: false # false 表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
# Spring 配置
spring:
application:
name: eurka
7、目录结构截图:
8、程序运行截图:
9、参考文章:
https://github.com/forezp/SpringCloudLearning
10、码云源码: