环境说明
SpringBoot 2.2.11.RELEASE
SpringCloud Hoxton.SR8
构建工具maven
项目构建说明
本项目通过maven父子工程构建,创建主pom然后其他服务构建在主工程下。
父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.yishu.ms</groupId>
<artifactId>ys</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ys</name>
<packaging>pom</packaging>
<modules>
<module>eureka</module>
</modules>
<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.2.11.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR8</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- springboot-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
</project>
eureka-服务注册中心
<?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>ys</artifactId>
<groupId>com.yishu.ms</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eureka</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</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-security</artifactId>
</dependency>
</dependencies>
</project>
启动类EurekaApplication
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
/**
* 开启服务注册中心安全校验
*/
@EnableWebSecurity
static class WebSecurityConfig extends WebSecurityConfigurerAdapter{
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().ignoringAntMatchers("/eureka/**");
super.configure(http);
}
}
}
主启动类上很简单,只要加上 「@EnableEurekaServer」 即可。需要注意的是,我这里开启了Eureka的注册中心的权限校验,如果没有这个需求可以增加 「WebSecurityConfig」 配置,同时去掉pom文件中 「spring-boot-starter-security」引用。
配置文件
-
application.yml
# 应用名称,将会显示在Eureka界面的应用名称列
spring:
application:
name: eureka-server
security:
user:
name: root
password: root
roles: SUPERUSER
eureka:
client:
#是否在注册中心注册自己
register-with-eureka: true
#要不要去注册中心获取其他服务的地址
fetch-registry: true
service-url:
defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-1:8761/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-2:8762/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-3:8763/eureka/
-
application-eureka-1.yml
eureka:
instance:
hostname: eureka-1
instance-id: eureka-server-1
server:
port: 8761
-
application-eureka-2.yml
eureka:
instance:
hostname: eureka-2
instance-id: eureka-server-2
server:
port: 8762
-
application-eureka-2.yml
eureka:
instance:
hostname: eureka-3
instance-id: eureka-server-3
server:
port: 8763
需要注意的是我这里「eureka.instance.hostname」设置的方式为「eureka-{number}」,这个hostname是需要修改「C:WindowsSystem32driversetchosts」中的配置,在该文件中分别增加配置如下:
127.0.0.1 eureka-1
127.0.0.1 eureka-2
127.0.0.1 eureka-3
在idea其中项中增加如下配置,通过设置不同的profiles应用不同的服务。
启动
分别启动三个注册中心节点,通过在浏览器中输入「http://eureka-1:8761」查看服务启动情况,因为开启了权限验证所以登录的账号和密码为配置文件中的「spring.security.user.name」和「spring.security.user.password」。
从上面可以看出我们有三个节点在线,到此Eureka的服务注册中心已经完成。
工程代码地址
项目地址:「https://gitee.com/zengchao_workspace/ys.git」,文章中的示例代码在分支 「eureka」 上,因为后续文章会基于该项目继续开发,所以下载代码后请切换到「eureka」分支上或者直接克隆指定分支。
git clone -b eureka https://gitee.com/zengchao_workspace/ys.git
原文始发于微信公众号(一只菜鸟程序员):SpringCloud-Eureka注册中心-H版
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/73139.html