美文网首页
Eureka服务发现

Eureka服务发现

作者: java_飞 | 来源:发表于2018-12-26 10:26 被阅读23次

Eureka服务发现

服务发现概述

  • 服务发现机制是为了解决硬网络编码问题,服务消费者使用这种机制获取服务提供者网络信息,当微服务网络地址发生变更(例如IP或端口),会重新注册到服务发现组件,而服务消费者就无须人工修改网络地址了。
  • 服务提供者、服务消费者、服务发现之间的关系如下:
    • 微服务在启动时,将自己的网络地址等信息注入到服务发现组件中,服务发现组件会存储这些信息
    • 服务消费者可以从服务发现组件查询服务提供者的网络地址,并使用该地址调用服务提供者的接口
    • 各个微服务与服务发现组件使用一定的机制(心跳)通信,服务组件如长时间无法与某微服务实例通信,就会注销该实例
  • 服务发现组件功能:
    • 服务注册表:是服务发现组件的核心,用来记录微服务信息,如名称、IP、端口等,提供查询和管理API,注册和注销
    • 服务注册与服务发现:服务注册是指服务在启动时将自己信息发送到服务注册组件上,服务发现是指查询可用微服务列表及网络地址的机制
    • 服务检查:服务发现组件检测已注册的服务,若某一个服务长时间无法访问则移除该实例

Eureka Demo

pom引入

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

启动类

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

application配置

server:
  port: 8761                  #配置端口
eureka:
  client:
    register-with-eureka: false   #是否向服务端注册自己,它本身就是Eureka Server,所以为false
    fetch-registry: false         #表示是否从Eureka Server获取信息,因为这是一个单节点,不需要同步其它Eureka Server的数据,所以为 false
    service-url:
      defaultZone: http://localhost:8761/eureka/    #设置 Eureka Client 与 Eureka Server 同步的地址,注册、查询服务都要使用该地址,多个地址可用逗号分隔

启动服务后,访问 http://localhost:8761/ 则可看到 Eureka 后台

Eureka高可用

1.利用上面的demo,创建两个配置文件:

第一个application-eureka1.yml:

server:
  port: 20001
eureka:
  instance:
    hostname: eureka1
  client:
    ## 是否向注册中心注册自己
    register-with-eureka: true
    ## 是否去检索其他的服务,因为服务注册中心本身的职责就是维护服务实例,它也不需要去检索其他服务
    fetch-registry: true
    service-url:
      defaultZone: http://eureka2:20002/eureka/

第二个application-eureka2.yml:

server:
  port: 20002
eureka:
  instance:
    hostname: eureka2
  client:
    ## 是否向注册中心注册自己
    register-with-eureka: true
    ## 是否去检索其他的服务,因为服务注册中心本身的职责就是维护服务实例,它也不需要去检索其他服务
    fetch-registry: true
    service-url:
      defaultZone: http://eureka1:20001/eureka/

注意:记得在本机电脑host配置文件中配置,eureka1和eureka2的地址映射

192.168.1.214 eureka1
127.0.0.1 eureka2

注意:

1.两个映射必须配置成不一样的,否则在web管理页面将看不到replicas,也就是集群配置无法生效

2.配置文件中register-with-eureka和fetch-registry两个参数必须设置为true,否在集群配置生效但是不可用

相关文章

网友评论

      本文标题:Eureka服务发现

      本文链接:https://www.haomeiwen.com/subject/lvnclqtx.html