SpringCloud-Eureka注册中心-H版

SpringCloud-Eureka注册中心-H版

环境说明

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.classargs);
    }

    /**
     * 开启服务注册中心安全校验
     */

    @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应用不同的服务。SpringCloud-Eureka注册中心-H版

启动

分别启动三个注册中心节点,通过在浏览器中输入「http://eureka-1:8761」查看服务启动情况,因为开启了权限验证所以登录的账号和密码为配置文件中的「spring.security.user.name」「spring.security.user.password」

SpringCloud-Eureka注册中心-H版
Eureka管理界面

从上面可以看出我们有三个节点在线,到此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

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!