Eureka学习笔记

一.简介

由Netflix开发的基于HTTP REST的服务,整合进Spring Cloud所以用的多

Eureka遵守AP原则

用于服务注册发现、负载均衡、故障转移

采用C/S架构

包含两个组件:Eureka Server和Eureka Client

二.结构

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

Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载均衡器。

自我保护机制

在默认配置中EurekaServer服务在一定时间(默认为90秒)没接受到某个服务的心跳连接后,EurekaServer会注销该服务。但是会存在当网络分区发生故障,导致该时间内没有心跳连接,但该服务本身还是健康运行的情况。Eureka通过“自我保护模式”来解决这个问题。

在自我保护模式中,Eureka Server会保护服务注册表中的信息,不再注销任何服务实例。

三.比较

EK和ZK的区别

ZK为主从结构,主节点和从属节点,主节点挂掉就不可用了,C(一致性)、P(分区容错性)

EK各个节点都是平等的,几个节点挂掉不会影响正常工作,A(可用性)和P(分区容错性)

四.使用流程

创建Maven父级Pom工程

 <!--eureka-server服务端 -->
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-eureka-server</artifactId>
   </dependency>

服务端配置

server:
  port: 7001

eureka:
  instance:
    hostname: eureka7001.com #eureka服务端的实例名称
  client:
    register-with-eureka: false #false表示不向注册中心注册自己。
    fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址。

将微服务注册到Eureka中

<!-- 将微服务provider侧注册进eureka -->
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-eureka</artifactId>
   </dependency>
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-config</artifactId>
   </dependency>

普通的项目中添加即可启动

@EnableEurekaServer
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class)
                    .web(true).run(args);
    }
}

启动工程后,访问,可以看到下面的页面

原文地址:https://www.cnblogs.com/ak918xp/p/13955946.html