注册中心eureka的搭建

亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述注册中心eureka的搭建相关的知识,希望能为你提供帮助。


注册中心eureka的搭建

文章图片

1.搭建项目【注册中心eureka的搭建】新建普通的springboot项目。
1.修改Application
修改EurekaServerApplication类:关键注解@EnableEurekaServer,声明为注册中心。
package com.cloud;

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


@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}

2.修改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>
< parent>
< groupId> org.springframework.boot< /groupId>
< artifactId> spring-boot-starter-parent< /artifactId>
< version> 2.2.5.RELEASE< /version>
< relativePath/> < !-- lookup parent from repository -->
< /parent>
< groupId> com.baocl< /groupId>
< artifactId> eureka-consumer-feign< /artifactId>
< version> 0.0.1-SNAPSHOT< /version>
< name> eureka-consumer-feign< /name>
< description> Demo project for Spring Boot< /description>

< properties>
< java.version> 1.8< /java.version>
< spring-cloud.version> Hoxton.SR1< /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>
< exclusions>
< exclusion>
< groupId> org.junit.vintage< /groupId>
< artifactId> junit-vintage-engine< /artifactId>
< /exclusion>
< /exclusions>
< /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>

3.修改application.properties
最后是最重要的配置文件application.properties,楼主总结了常用的配置。
spring.application.name=eureka-server
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
server.port=1001
eureka.instance.hostname=localhost
#是否向服务注册中心注册自己
eureka.client.register-with-eureka=false
#是否检索服务---表示是否从注册中心拉取服务列表
eureka.client.fetch-registry=false

#是否开启自我保护模式,默认为true。

#默认情况下,如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销该实例(默认90秒)。
#但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,以上行为可能变得非常危险了——因为微服务本身其实是健康的,此时本不应该注销这个微服务。
#Eureka通过“自我保护模式”来解决这个问题——当Eureka Server节点在短时间内丢失过多客户端时(可能发生了网络分区故障),
#那么这个节点就会进入自我保护模式。一旦进入该模式,Eureka Server就会保护服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。
#当网络故障恢复后,该Eureka Server节点会自动退出自我保护模式。
#综上,自我保护模式是一种应对网络异常的安全保护措施。它的架构哲学是宁可同时保留所有微服务(健康的微服务和不健康的微服务都会保留),
#也不盲目注销任何健康的微服务。使用自我保护模式,可以让Eureka集群更加的健壮、稳定。
#eureka.server.enable-self-preservation=false

#设置清理无效节点的时间间隔,默认60000,即是60s
#eureka.server.eviction-interval-timer-in-ms=5000
#自我保护续约百分比阀值因子。如果实际续约数小于续约数阀值,则开启自我保护
#eureka.server.renewalPercentThreshold = 0.85
#节点间连接的超时时间。
#eureka.server.peerNodeConnectTimeoutMs=200
#节点间读取信息的超时时间。
#eureka.server.peerNodeReadTimeoutMs=200

#每隔x秒更新自身缓存 作用于client从server获取缓存(1001页面跳过缓存不会生效)
#eureka.server.response-cache-update-interval-ms= 2000

然后启动服务,访问配置的端口号,出现这个界面,就代表ok啦。
注册中心eureka的搭建

文章图片

4.大致原理
注册中心eureka的搭建

文章图片

spring cloud通信主要是以http请求形式进行,当服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次再调用时,则直接从本地缓存中取,完成一次调用。 当服务注册中心Eureka Server检测到服务提供者因为宕机、网络原因不可用时,则在服务注册中心将服务置为DOWN状态,并把当前服务提供者状态向订阅者发布,订阅过的服务消费者更新本地缓存。 服务提供者在启动后,周期性(默认30秒)向Eureka Server发送心跳,以证明当前服务是可用状态。Eureka Server在一定的时间(默认90秒)未收到客户端的心跳,则认为服务宕机,注销该实例。





    推荐阅读