目录
搭建父项目
以下以简单的博客项目为示例构建微服务(目前未完成,待续中。。。)。
开发环境的准备主要涉及三个方面:JDK 1.8、Maven、IDEA 。
选择版本:Spring Boot 2.3.8、Spring Cloud Hoxton.SR9 。
对应的版本匹配支持信息:https://start.spring.io/actuator/info
首先创建一个 Maven 父项目,取名为 blog,在 pom.xml 中配置 Spring Boot 和 Spring Cloud 的依赖信息,代码如下所示。
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.5.RELEASE</spring-cloud-alibaba.version>
</properties>
<!-- spring-boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>2.3.8.RELEASE</version>
</parent>
<dependencies>
<!-- spring-boot-starter-test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<!-- spring-cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- spring-cloud-alibaba -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
搭建 Eureka 服务注册中心
创建一个 module 模块,取名为 blog-eureka-server,在 pom.xml
中配置 Eureka 的依赖信息,代码如下所示:
<!-- eureka-server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
创建一个启动类 BlogEurekaServerApplication
,代码如下所示:
@SpringBootApplication
@EnableEurekaServer
public class BlogEurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(BlogEurekaServerApplication.class, args);
}
}
这里所说的启动类,跟 Spring Boot 几乎完全一样,只是多了一个 @EnableEurekaServer
注解,表示开启 Eureka Server 。
接下来在 src/main/resources
下面创建一个 application.yml
(或application.properties
)属性文件,增加以下基本的配置:
spring:
application:
name: blog-eureka-server # app 名称
eureka:
client:
# 由于注册中心的职责就是维护服务实例,它并不需要去检索服务,所以也设置为 false
fetch-registry: false
# 由于该应用为注册中心,所以设置为false,代表不向注册中心注册自己
register-with-eureka: false
# 单机版的配置,集群只需要启动多个 eureka 并相互作为客户端配置其他 eureka 地址即可
service-url:
defaultZone: http://localhost:${server.port}/eureka/
server:
port: 8761
eureka.client.register-with-eureka
一定要配置为false
,不然启动时会把自己当作客户端向自己注册,会报错。
接下来直接运行 BlogEurekaServerApplication
就可以启动我们的注册中心服务了。我们在 application.yml
配置的端口是 8761,则可以直接通过 http://localhost:8761/ 去浏览器中访问,然后便会看到 Eureka 提供的 Web 控制台。