Eureka源码阅读之环境搭建及工程结构

目录
  • 1. 源码阅读环境搭建
    • 1.1 源码下载:
  • 2. 工程结构速览
  • 3. 调试须知

1. 源码阅读环境搭建

  • ide:IntelliJ IDEA 2020.1
  • 包管理:gradle
  • eureka版本:1.10.11
  • Spring Cloud : 2020.0.2
  • Spring Boot :2.4.4

1.1 源码下载:

下载完源码之后,需要更改一下几个地方:

build.gradle增加阿里云镜像仓库,将如下插件版本改一下,否则导入idea会报错:

maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
plugins {
    id 'nebula.netflixoss' version '5.1.0'
}

需要更改gradle的版本,在gradle/gradle-wrapper.properties文件中,由于我使用gradle-wrapper中的版本进行启动,所以必须修改版本,改成3.5.1版本:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-3.5.1-bin.zip

导入IDEA,等待几分钟,然后编译完成。可能需要手动设置一下各个模块的jdk,大家随便搞一个JDK8就可以。

2. 工程结构速览

我们此次分析源码,从Spring cloud Netflix eureka开始的。

Spring cloud eureka server和client是对Netflix的eureka的封装,加了一些注解,对spring boot进行支持。所以如果上来就看eureka的源码,先从Netflix eureka开始看起,结束后再把spring cloud Netflix eureka server和client这两个项目看一下就可以了。

github.com/spring-clou…

github.com/Netflix/eur…以上是两个项目的地址,实际上,spring cloud Netflix这个项目就是对Netflix的几个组件进行了一层很薄的封装。

spring cloud 2020.0.2对应的是Netflix eureka的1.10.11版本

eureka-client:这个就是指eureka的客户端,注册到eureka上面去的一个服务,就是一个eureka client。无论你要注册,还是要发现别的服务,无论你是服务提供者还是服务消费者,都是一个eureka 客户端

eureka-core:这个就是指的eureka的服务端,其实就是eureka的注册中心

eureka-resources:这个是基于jsp开发的eureka控制台,web页面,上面你可以看到各种注册的服务实例等信息

eureka-server:这是把eureka-client、eureka-core、eureka-resources打包成一个war包,也就是说eureka-server自己本身也是一个eureka client,同时也是注册中心,同时也提供eureka控制台。这个是我们真正使用的注册中心

eureka-example:eureka提供的使用示例

eureka-test-utils:eureka的单元测试工具

我们逐一阅读,首先先剖析eureka-server,因为就是用eureka-server先启动注册中心的,然后客户端才能来注册服务和发现服务。

3. 调试须知

eureka-server工程的单元测试依赖war包,需要先把eureka servergradle的war指令执行以下,得到一个war包,就可以调试了
eureka-example 工程提供了很多实例,如果想调试eureka 客户端的逻辑可在此处找

参考文章

eureka-0.10.11源码(注释)

springcloud-source-study学习github地址

以上就是Eureka源码阅读之环境搭建及工程结构的详细内容,更多关于Eureka源码环境搭建工程结构的资料请关注我们其它相关文章!

(0)

相关推荐

  • Spring Cloud详细讲解zuul集成Eureka流程

    目录 zuul集成Eureka Zuul路由配置 1. 指定具体服务路由 2. 路由前缀 Zuul过滤器 过滤器类型 使用过滤器 zuul集成Eureka 通过刚才的示例,我们已经可以简单地使用 Zuul 进行路由的转发了,在实际使用中我们通常是用 Zuul 来代理请求转发到内部的服务上去,统一为外部提供服务.内部服务的数量会很多,而且可以随时扩展,我们不可能每增加一个服务就改一次路由的配置,所以也得通过结合 Eureka 来实现动态的路由转发功能.首先需要添加 Eureka 的依赖,代码如下所

  • FeignClient如何脱离eureka自定义URL

    目录 FeignClient脱离eureka自定义URL 需求 方法一: FeignClient注解中添加URL属性 方法二: eureka禁用ribbon,并手动配置服务列表 feign不使用eureka main server端代码 Client端代码 FeignClient脱离eureka自定义URL 需求 Spring Cloud环境中的FeignClient有时候需要调用特定主机的接口,但是默认是从eureka上的注册列表自动获取到的负载均衡过后的URL,这时怎么办呢? 方法一: Fe

  • 基于多网卡环境下Eureka服务注册IP的选择问题

    目录 多网卡环境下Eureka服务注册IP选择 问题场景 问题原因 解决方案 在Eureka中使用IP注册服务 eureka服务端配置 客户端配置 admin服务端配置 客户端配置 多网卡环境下Eureka服务注册IP选择 问题场景 服务器上分别配置了eth0和eth1两块网卡,只有eth1的地址可供其它机器访问,在这种情况下,服务注册时Eureka Client会自动选择eth0作为服务ip, 导致其它服务无法调用. 问题原因 由于官方并没有写明Eureka Client探测本机IP的逻辑,所

  • 如何从eureka获取服务的ip和端口号进行Http的调用

    目录 eureka获取服务ip和端口号进行Http调用 eureka页面中显示ip+端口 eureka获取服务ip和端口号进行Http调用 我告诉你们为啥我要先从eureka首先获取 goods的服务ip, 在用ip的方式使用http调用goods的服务. 因为公司的规定, 不让我们用Feigin. 我TMD的都震惊了, 我都不知道为啥. 我也不想写同事的ip地址, 做配置, 因为都去eureka里面注册了, 所以就这样调用了, 真是蛋疼.  这种微服务, 这种奇葩的方式.. package c

  • spring cloud eureka 服务启动失败的原因分析及解决方法

    目录 环境: 错误log 环境: <spring-boot-version>2.3.5.RELEASE</spring-boot-version> <spring-cloud-version>Hoxton.SR8</spring-cloud-version> 错误log Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerEx

  • SpringCloud Eureka服务治理之服务注册服务发现

    目录 什么是Eureka Eureka核心概念服务注册和服务发现 服务注册 服务发现 Eureka实战 Eureka服务端单节点构建 Eureka服务端集群构建 Eureka客户端构建 什么是Eureka Netflix Eureka 是一款由 Netflix 开源的基于 REST 服务的注册中心,用于提供服务发现功能.Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 进行了二次封装,主要负责完成微服务架

  • Eureka源码阅读之环境搭建及工程结构

    目录 1. 源码阅读环境搭建 1.1 源码下载: 2. 工程结构速览 3. 调试须知 1. 源码阅读环境搭建 ide:IntelliJ IDEA 2020.1 包管理:gradle eureka版本:1.10.11 Spring Cloud : 2020.0.2 Spring Boot :2.4.4 1.1 源码下载: 下载完源码之后,需要更改一下几个地方: build.gradle增加阿里云镜像仓库,将如下插件版本改一下,否则导入idea会报错: maven { url 'https://ma

  • Eureka源码阅读解析Server服务端启动流程实例

    目录 环境 1.spring cloud整合eureka server demo 1.1 新建spring boot项目 pom.xml文件添加 配置文件 1.2 启动类 1.3 启动 2. spring cloud自动装配eureka server源码解析 2.1 @EnableEurekaServer注解 2.2 EurekaServerAutoConfiguration 2.2.1 查找starter 自动装配类的技巧 2.2.2 EurekaServerAutoConfiguration

  • Eureka源码阅读Client启动入口注册续约及定时任务

    目录 引言 1.环境 2. Spring Cloud整合Eureka Client 启动入口 2.1 封装配置文件的类 2.1.1 EurekaClientConfigBean 2.1.2 EurekaInstanceConfigBean 2.2 EurekaClient 2.2.1 ApplicationInfoManager 2.2.2 EurekaClient 2.3 小结 3. DiscoveryClient类的解析 3.1 DiscoveryClient 作用 3.2 Discover

  • Vue源码之rollup环境搭建步骤详解

    目录 搭建环境 建立rollup配置文件 创建入口文件 打包前准备 打包 测试一下 搭建环境 第一步 进行初始化,在终端输入npm init -y生成package.json文件,可以记住所有开发相关的依赖. 第二步 --在终端输,入安装依赖 npm install rollup rollup-plugin-babel @babel/core @babel/preset-env --save-dev 注: 安装rollup打包工具,可能需要编译高级语法所以需要安装babel,安装babel需要在

  • springboot-2.3.x最新版源码阅读环境搭建(基于gradle构建)

    一.前言 跟很多小伙伴聊天,发现一个严重的问题,很多小伙伴横向发展的貌似很不错,很多技术都能说出一二,但是如果在某个技术上深挖一下就不行了,问啥啥不会.就拿springboot来说,很多同学止步于springboot的应用,再往深处就一问三不知了,那么如何破局呢?smart哥认为最好的办法就是直捣黄龙,要把一个技术理解透了,听别人讲一万遍原理,不如自己撕一遍源码. 要阅读源码那就首先得先搭建源码阅读环境,那么本篇文章就来介绍下Spring Boot的源码环境搭建. 鉴于spring团队已经全面抛

  • 教你使用IDEA搭建spring源码阅读环境的详细步骤

    目录 第一步.准备gradle环境 第二步.下载spring源码 第一步.准备gradle环境 1.去官网下载gradle https://gradle.org/releases/ 2.将其解压缩,创建repository文件夹 和init.d文件夹 创建init.gradle文件 输入文本信息,主要是配置阿里云镜像仓库地址,和maven的类似 gradle.projectsLoaded { rootProject.allprojects { buildscript { repositories

  • 基于Gradle搭建Spring 5.3.13-release源码阅读环境的详细流程

    目录 # 1.安装JDK # 2.安装Gradle # 3.Spring版本命名规则 # 4.下载Spring 5.3.13-release源码 # 5.修改Spring源码中Gradle配置 # 6.构建Spring源码 # 7.导入IDEA 点击File --> New --> Project from Existing Sources... # 8.创建Spring源码debug调试模块 # 基于Gradle搭建Spring 5.5.13-release源码阅读环境 Spring版本:5

  • CloudStack SSVM启动条件源码阅读与问题解决方法

    CloudStack SSVM启动条件源码阅读与问题解决方法: 在CloudStack建立zone的时候,经常遇到SSVM不启动,或者根本就没有SSVM的情况,分析CloudStack日志,会发现有"Zone 1 is not ready to launch secondary storage VM yet"打印,意思是zone还未准备好启动SSVM. 通过查询CloudStack源代码,发现启动SSVM前有如下检查:         获取Zone里的template. select

  • vue-next/runtime-core 源码阅读指南详解

    写在前面 最近又抽时间把 vue-next/runtime-core 的源码陆陆续续地看完了,期间整理了很多笔记,但都是碎片化的.本来是想整理一下,写成一篇文章分享出来的,但是感觉最终的成果物只能是一篇篇幅巨长的解析文,就算我一行一行的把源码加上注释,其阅读体验也会很差,因为每个人读代码的习惯不同,思路不同.正所谓抛砖引玉,所以,我觉的写一篇向导文作为这块砖应该是足够了,希望可以帮助到想看源码但觉得无从看起.无从下手的读者. 另一方面,也算是给自己挖一个坑,因为这篇文章中涉及到的很多内容,三言两

  • Idea导入eureka源码实现过程解析

    通过GitHub获取Eureka源码 进入git bash命令行,自己找个目录,用来存放eureka源码,然后在目录里面,执行git clone  https://github.com/Netflix/eureka.git,就可以了,这个是需要点时间的,稍微有点慢,你等一会儿好了. git clone https://github.com/Netflix/eureka.git 获取eureka项目依赖 然后在eureka目录中,直接双击gradlew.bat就可以,这个是人家给你提供的命令,直接

随机推荐