SpringCloud搭建Eureka服务注册中心集群

一,注册中心服务集群搭建

  1. 创建一个文件夹 名称为 eurekas
  2. 使用IDEA打开这个文件夹
  3. 创建多个Module -> 选择SpringBoot -> 名称为: eureka-server-1 和 eureka-server-2 和 eureka-server-3
  4. 创建项目时勾选Spring web和Eureka Server依赖。
  5. 三个项目都是注册中心,pom文件一样,依赖CV即可,启动类添加@EnableEurekaServer注解,表明是服务注册中心。
<?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.zpa</groupId>
    <artifactId>eureka-server-1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-server-1</name>
    <description>Eureka集群一</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>2020.0.1</spring-cloud.version>
    </properties>
    
    <dependencies>
     	<!--添加SpringBoot的Web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <!--添加 Eureka的服务端依赖-->
        <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-test</artifactId>
            <scope>test</scope>
        </dependency>
        
		<!--登陆或连接验证的依赖 安全依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
    </dependencies>
    
<!--Spring Cloud 父级依赖-->
    <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>

在这里插入图片描述
6. 配置HTTP密码验证 (需手动添加依赖);
7. 因为我们设置了注册中心 密码验证 此时我们的provider和consumer项目想要连接上注册中心就会报错,由于spring-boot-starter-security默认开启了CSRF校验,对于client端这类非界面应用来说,有些不合适,-但是又没有配置文件的方式可以禁用,需要通过Java配置,进行禁用,如下:这样的话需要连接注册中心的其他项目就可以在连接URL中配置账号和密码 就可以连接上注册中心;
8. 三个集群项目中都需要此配置类!

package com.zpa.eurekaserver1.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

/**
 * @Author user
 */
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable();
        super.configure(http);
    }
}
  1. 配置Windows的hosts文件
  2. 打开 此电脑 C:\Windows\System32\drivers\etc
  3. 这个文件夹里有 一个名称为hosts 或者HOSTS 的文件 这个文件是以键值对 的方式进行配置。
    在这里插入图片描述
127.0.0.1 eureka1.com
127.0.0.1 eureka2.com
127.0.0.1 eureka3.com

12.重点配置.yml

  1. eureka-server-1 项目的配置
server:
  port: 8001 #服务注册中心端口号
eureka:
  instance:
    appname: eureka-server-1
    eureks2Port: 8002
    eureks3Port: 8003
  client:
    fetch-registry: false #是否检索其他注册中心
    register-with-eureka: false  #是否把自己注册到注册中心
    service-url:  # 配置注册中心的地址 url
      defaultZone: http://root:root@eureka2.com:${eureka.instance.eureks2Port}/eureka/,http://root:root@eureka3.com:${eureka.instance.eureks3Port}/eureka/

  server:  #关闭自我安全检查
    enable-self-preservation: false

# 配置认证密码
spring:
  application:
    name: eureka-server-1
  security:
    user:
      name: root
      password: root
  1. eureka-server-2项目的配置
server:
  port: 8002
eureka:
  instance:
    appname: eureka-server-2
    eureks1Port: 8001
    eureks3Port: 8003
  client:
    fetch-registry: false
    register-with-eureka: false
    service-url:
      defaultZone: http://root:root@eureka1.com:${eureka.instance.eureks1Port}/eureka/,http://root:root@eureka3.com:${eureka.instance.eureks3Port}/eureka/

  server:
    enable-self-preservation: false

    # 配置认证密码
spring:
  application:
    name: eureka-server-2
  security:
    user:
      name: root
      password: root
  1. eureka-server-3项目的配置
server:
  port: 8003
eureka:
  instance:
    appname: eureka-server-3
    eureks1Port: 8001
    eureks2Port: 8002
  client:
    fetch-registry: false
    register-with-eureka: false
    service-url:
      defaultZone: http://root:root@eureka1.com:${eureka.instance.eureks1Port}/eureka/,http://root:root@eureka2.com:${eureka.instance.eureks2Port}/eureka/

  server:
    enable-self-preservation: false

    # 配置认证密码
spring:
  application:
    name: eureka-server-3
  security:
    user:
      name: root
      password: root
  1. 启动三个项目
    在这里插入图片描述

二,简单来个服务提供者

  1. 创建一个文件夹 名称为 spring-cloud
  2. 使用IDEA打开这个文件夹 创建Module -> 选择SpringBoot -> 名称为: provider1
  3. 创建项目时勾选Springweb和Eureka Server依赖
  4. 启动类添加@EnableEurekaClient注解表明是服务提供者
  5. 如上同添加密码验证依赖与配置
<?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.zpa</groupId>
    <artifactId>provider1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>provider1</name>
    <description>服务提供者1</description>
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>2020.0.1</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <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-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--登陆或连接验证的依赖 安全依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </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>

  1. appliction.yml配置类
server:
  port: 8011
eureka:
  instance:
    appname: provider1
  client:
    fetchRegistry: false #是否检索其他注册中心
    register-with-eureka: true # 需要把自己注册到注册中心
    service-url:
      defaultZone: http://root:root@eureka1.com:8001/eureka/
  server: # 关闭自我安全检查 及时的排除掉不可用的服务
    enable-self-preservation: false
#密码
spring:
  application:
    name: provider1
  security:
    user:
      name: root
      password: root
  1. 开始测试
  2. 先启动三个注册中心
  3. 然后启动该服务提供者
    在这里插入图片描述
    10.完结,这样即完成服务注册中心的集群部署。

具体参考:https://www.kuangstudy.com/bbs/1364133964096217090

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值