SpringCloud系列(10)--Eureka集群原理及搭建

前言:当注册中心只有一个,而且当这个注册中心宕机了,就会导致整个服务环境不可用,所以我们需要搭建Eureka注册中心集群来实现负载均衡+故障容错

Eureka架构原理图

1、Eureka集群原理
2、创建Eureka Server端服务注册中心模块
(1)在父工程下新建模块
(2)选择模块的项目类型为Maven并选择模块要使用的JDK版本
(3)填写子模块的名称,然后点完成即可完成创建

效果图:

(4)修改eureka-server7002子模块的pom.xml文件,然后reolad一下,下载依赖

例:

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>springcloud01</artifactId>
        <groupId>com.ken.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>eureka-server7002</artifactId>

    <dependencies>
        <!--以下依赖都没写版本号,没写版本号的情况下会引用父项目的版本-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--监控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <!--lombok插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--引入自己定义的api调用包,可以使用Payment模块的entity-->
        <dependency>
            <groupId>com.ken.springcloud</groupId>
            <artifactId>api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <!--Eureka Server-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
</project>
3、为子模块添加名为application的yml配置文件(注:yml是官方推荐的配置文件格式,最好使用yml文件而不是properties文件)

效果图:


如果application.yml不是绿色的,而是红色的,可以尝试install当前Maven工程,如果还不行可以尝试清除Idea的缓存


4、修改hosts文件,将映射配置进hosts文件里
(1)进入C:\Windows\System32\drivers\etc文件夹,找到hosts文件
(2)修改hosts文件,添加以下映射
XML 复制代码
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com

效果图:

5、分别修改eureka-server7001模块和eureka-server7002模块的application.yml配置文件
(1)修改eureka-server7001的yml配置
XML 复制代码
server:
  port: 7001
eureka:
  instance:
    #eureka服务端的实例名称
    hostname: eureka7001.com
  client:
    #false表示不向服务中心注册自己
    register-with-eureka: false
    #false表示自己端就是注册中心,只需要维护服务实例,并不需要检索服务
    fetch-registry: false
    service-url:
      #设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址
      defaultZone: http://eureka7002.com:7002/eureka/

效果图:

(2)修改eureka-server7002的yml配置
XML 复制代码
server:
  port: 7002
eureka:
  instance:
    #eureka服务端的实例名称
    hostname: eureka7002.com
  client:
    #false表示不向服务中心注册自己
    register-with-eureka: false
    #false表示自己端就是注册中心,只需要维护服务实例,并不需要检索服务
    fetch-registry: false
    service-url:
      #设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址
      defaultZone: http://eureka7001.com:7001/eureka/

效果图:

6、为eureka-server7002子模块新建一个主启动类,类名输入com.ken.springcloud.EurekaMain,然后创建即可

效果图:

7、编写为eureka-server7002子模块的主启动类
java 复制代码
package om.ken.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
//标注为Eureka Server(服务注册中心)
@EnableEurekaServer
public class EurekaMain {
    public static void main(String[] args) {
        SpringApplication.run(EurekaMain.class, args);
    }
}

效果图:

8、分别启动eureka-server7001子模块和eureka-server7002子模块,然后分别进入http://localhost:7001/http://localhost:7002/或者分别进入http://eureka7001.com:7001/http://eureka7002.com:7002/查看是否成功相互注册,进入页面后如果发现互相注册对方,则证明eureka集群搭建成功

eureka7001的效果图:

从图里可以看到eureka7001里注册了eureka7002

或者

eureka7002的效果图:

从图里可以看到eureka7002里注册了eureka7001

或者

相关推荐
kkkkk0211067 小时前
微服务学习笔记(黑马商城)
java·spring boot·spring·spring cloud·sentinel·mybatis·java-rabbitmq
洛克大航海10 小时前
5-SpringCloud-服务链路追踪 Micrometer Tracing
后端·spring·spring cloud·zipkin·micrometer
我命由我1234510 小时前
Spring Cloud - Spring Cloud 微服务概述 (微服务的产生与特点、微服务的优缺点、微服务设计原则、微服务架构的核心组件)
java·运维·spring·spring cloud·微服务·架构·java-ee
我命由我1234511 小时前
Spring Cloud - Spring Cloud 注册中心与服务提供者(Spring Cloud Eureka 概述、微服务快速入门、微服务应用实例)
java·spring boot·spring·spring cloud·微服务·eureka·java-ee
Java 码农12 小时前
Spring Cloud Eureka 的实现原理
spring·spring cloud·eureka
小猪咪piggy1 天前
【微服务】(1) Spring Cloud 概述
java·spring cloud·微服务
安卓开发者1 天前
Docker命令大全:从入门到精通
docker·容器·eureka
choice of1 天前
Sentinel:阿里云高并发流量控制
笔记·spring cloud·sentinel
xrkhy1 天前
微服务之SpringCloud Alibaba(注册中心Nacos)
spring cloud·微服务·架构
007php0071 天前
百度面试题解析:Zookeeper、ArrayList、生产者消费者模型及多线程(二)
java·分布式·zookeeper·云原生·职场和发展·eureka·java-zookeeper