Spring Cloud学习笔记之Eureka Server注册中心

Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。我们简单实现一下Eureka Server。

1.新建一个Maven项目,然后编写配置信息:
pom.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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test</groupId>
    <artifactId>MySpringCloudProject03</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <!-- 配置信息 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.14.RELEASE</version>
    </parent>

    <!-- 导入Spring Cloud的依赖管理 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Edgware.SR4</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- 导入Eureka服务的依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
    </dependencies>

</project>

application.properties:

server.port=8088

#是否需要将自己注册到注册中心中,因为本身就是一个注册中心,所以不需要将自己注册到注册中心中
eureka.client.register-with-eureka=false

#是否从注册中心获取注册信息
eureka.client.fetch-registry=false

#客户端和服务端进行交互的地址
eureka.client.service-url.defaultZone=http://127.0.0.1:${server.port}/eureka/

2.编写启动类EurekaServer.java:

@EnableEurekaServer      //声明此项目是Eureka的服务端
@SpringBootApplication
public class EurekaServer {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer.class, args);
    }
}

3.运行
启动我们的EurekaServer,然后在浏览器中输入 http://localhost:8088/ ,我们就可以看到Eureka注册中心:
在这里插入图片描述

补充:Eureka的自我保护机制。
有的时候在访问Eureka服务端的时候会出现红色的提示信息,这个就是Eureka的自我保护模式。
默认情况下,如果Eureka Server在一定时间内没有接收到某一个微服务实例的心跳,Eureka Server将会注销该实例(默认90秒),但是这种行为是不安全的,因为有的时候监听不到客户端的心跳,有可能是因为网络故障导致的,而并非是服务本身出现了问题,服务本身是健康的,这么草率的将服务注销是不安全的。
Eureka通过“自我保护模式”来解决这个问题——当Eureka节点在短时间内丢失过多的客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式,一旦进入该模式,Eureka Server就会保护服务注册表红的信息,不再删除服务注册表中的数据(也就不会注销任何的微服务)。当网络故障恢复后,该Eureka Server节点会自动退出自我保护模式。
综上,自我保护模式是一种应对网络异常的安全保护措施,它的架构哲学是宁可同时保留所有的微服务(健康的微服务和不健康的微服务),也不盲目注销任何健康的微服务,使用自我保护模式,可以让Eureka集群更加的健壮、稳定。
默认Eureka自我保护模式是开启的,无需处理。如果,需要禁用自我保护模式,只需要在配置文件中添加配置即可。

#禁用Eureka的自我保护模式
eureka.server.enable-self-preservation=false

注:以上为【黑马程序员|java进阶教程Spring Cloud微服务解决方案】视频的学习笔记,侵删。

猜你喜欢

转载自blog.csdn.net/wangruoao/article/details/83039134