阅读背景:

Spring Cloud之eureka配置——eureka.instance

来源:互联网 

在使用eureka注册服务的时候,需要配置instance下面的字段,如果对这些字段的含义不了解,配置过程中就会出现一些问题,或者想改变注册中心的服务实例的显示格式等等。主要说明一下,几种配置的含义,以及不同内网,同一内网,公网上注册,实例名称显示问题等等

配置代码:

eureka:
  instance:
    non-secure-port-enabled: true //1
    non-secure-port: ${server.port:7001} //2
    secure-port-enabled: false //3
    secure-port: 443 //4

    hostname: xuexuantest  //5
    prefer-ip-address: true //6
    ip-address: 192.168.1.108 //7
    instance-id: ${eureka.instance.ip-address}:${server.port}  //8
  client:
    service-url:
      defaultZone: http://192.168.1.108:${eureka.port:8761}/eureka/

192.168.3.38 是本机二级路由下的地址
192.168.1.100是本机一级路由下的地址
192.168.1.108是一级路由下的测试服务器

  1. 开启不安全通信的端口,就是使用http进行通信
  2. 设置不安全端口号
  3. 开启安全通信的端口,就是使用https进行通信
  4. 设置安全通信的端口号
  5. 默认注册到服务中心,显示的名称是 hostname+appname+port
    如果是二级路由下面的,注册到一级路由或者指定ip,显示的是二级路由的内网地址+appname+port


    注意:prefer-ip-address = true,hostname将失效
    很多朋友有疑问,问什么需要使用hostname,在同一个局域网,可以通过hostname来互相访问,因为同一个局域网不允许出现相同的hostname

  6. 使用ip地址来注册到服务中心,显示的是实例名称

    如果不指定7,内网则使用内网的ip,注册到服务中心。(无论服务中心是在公网,还是在内网)
    鼠标放上去,浏览器左下角显示的地址

  7. 设置访问服务的ip地址,一般设置ip-address,都是因为需要通过外网来访问该服务,通常设置为公网ip,注意:需要同时设置6
    下图为了演示,设置了108地址

  8. 设置 注册服务中心,显示的实例名称

源码分析

Eureka服务注册过程详解之IpAddress(详解eureka.instance.prefer-ip-address = true 与 eureka.instance.prefer-ip-address)

参考:

spring eurake中使用IP注册
springcloud之eureka配置——eureka.instance
Spring Cloud Netflix
springboot填坑之 – spring cloud基于ip的discovery服务注册中心配置这篇文章中对prefer-ip-address的理解出现偏差


分享到: