暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Eureka 客户端配置注册地址为什么要加eureka做后缀?

搬运工来架构 2020-08-10
1112
点击上方蓝色字关注我们~


最近在网上看到别人提出了这个问题 :


现在从源码的角度简单剖析其原因。

我们知道,一般在配置注册中心eureka的地址类似这个:
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

而访问eureka注册中心控制台页面管理则是:http://localhost:8761,即可。

所以,这也是网友所疑惑的:为什么eureka.client.serviceUrl.defaultZone配置需要增加/eureka作为后缀。

我们知道,eureka使用的http组件是:Jersey。
Jersey 是 JAX-RS(JSR311)开源参考实现用于构建 RESTful Web service。此外 Jersey 还提供一些额外的 API 和扩展机制,所以开发人员能够按照自己的需要对 Jersey 进行扩展。

那么/eureka这个后缀是什么时候使用的,或者从哪里进行处理?

在EurekaServerAutoConfiguration中注入了Filter:
      @Bean
    public FilterRegistrationBean jerseyFilterRegistration(
    javax.ws.rs.core.Application eurekaJerseyApp) {
    FilterRegistrationBean bean = new FilterRegistrationBean();
    bean.setFilter(new ServletContainer(eurekaJerseyApp));
    bean.setOrder(Ordered.LOWEST_PRECEDENCE);
    bean.setUrlPatterns(
    Collections.singletonList(EurekaConstants.DEFAULT_PREFIX + "/*"));


    return bean;
      }
    从上面源码可知,eureka server启动时创建了/eureka/*过滤器,所以所有相关注册请求都被此进行处理。

    比如:eureka client启动时拉取实例数据入口:
    而/{version}则为/eureka。

    由此可知,/eureka是作为默认版本V2。并且后缀/eureka已经是被定义成常量,也就是说,eureka server提供的注册地址已经被规范化为包含/eureka。

    那么,控制台请求和页面处理等,是在哪里处理呢?

    由此,可知控制台处理是在spring-cloud-netflix-eureka-server这个项目模块中,可通过eureka.dashboard.path来配置控制台的地址,默认为:/。

    同时,我们在配置eureka server yml配置文件时,是没有指定context-path,也就是默认为/。如果我们想指定的话,那么相关的配置都要进行调整。
      server:
      port: 8761
      context-path: verysu # 默认为
      此时访问eureka控制台则为:http://localhost:8761/verysu/

      那么,eureka配置中心地址对应应该为:
      eureka.client.serviceUrl.defaultZone=http://localhost:8761/verysu/eureka/

      最后,我觉得网友的问题原因应该是:
      1)eureka后台管理和客户端注册地址做区分,达到比较好的隔离作用,不同请求走不同context。
      2)使用eureka作为后缀(固定/规范),也能很好的区分是将eureka作为注册中心,如果不是这样的话,直接给你一个地址可能并不清楚到底使用哪个注册中心了。
      上面这些是我个人观点,如果你有不同想法,欢迎探讨哦。


      【eureka相关源码剖析】

      Eureka源码剖析之一:初始化-启动
      Eureka源码之二:服务注册
      Eureka源码剖析之三:服务拉取
      Eureka源码剖析之四:服务续约
      Eureka源码剖析之五:服务下线
      Eureka源码剖析之六:自我保护机制
      Eureka源码剖析之七:架构&面试题【总结】

      回复公众号【资料】获得干货资料集锦:技术ppt、IT大会资料、架构、分布式资料等。
      推荐好文

      1、互联网Code Review最佳实践分享

      2、dubbo面试题!会这些,说明你看懂了dubbo源码

      3、Kafka面试题!掌握它才说明你真正懂Kafka
      4、
      Netty 5.0为啥被舍弃?原因竟然是...
      5、
      中台之上——业务架构系列【汇总】

      6、必备瑞士军刀IDEA插件,你使用了哪些

      7、线上热更新代码只需3步 Arthas实战

      8、Eureka源码剖析之七:架构&面试题【总结】

      9、互联网工程师应该用这种姿势打印日志

      10、加入:互联网基础/架构交流群

      -关注搬运工来架构,与优秀的你一同进步-

      如果喜欢这篇文章可以点在看哦↘

      文章转载自搬运工来架构,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论