Eureka源码阅读之环境搭建及工程结构
作者:hsfxuebao 发布时间:2023-07-26 01:02:36
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 server
的gradle的war指令
执行以下,得到一个war包,就可以调试了eureka-example
工程提供了很多实例,如果想调试eureka 客户端的逻辑可在此处找
参考文章
eureka-0.10.11源码(注释)
springcloud-source-study学习github地址
来源:https://juejin.cn/post/7153225315370663966


猜你喜欢
- 很多人的程序在本地运行是好的,但是发布在服务器上后就会有各种各样的问题,但是服务器上又不能直接调试,所以直接读写本地日志成为解决问题的关键,
- 最近在刷力扣上的题目,刷到了65不同路径,当初上大学的时候,曾在hihocoder上刷到过这道题目,但是现在已经几乎全忘光了,大概的知识点是
- 前 言终于来到下篇了,通过上篇,和中篇,我们了解了linq的基本语句,对应linq我们又了解到lambda表达式,静态扩展方法,以及linq
- renameTo方法public boolean renameTo(File dest),File类中的renameTo方法可以操作文件或目
- 本文实例为大家分享了SpringMVC实现文件上传和下载的具体代码,供大家参考,具体内容如下文件上传第一步,加入jar包:commons-f
- java中synchronized(同步代码块和同步方法)详解及区别问题的由来:看到这样一个面试题://下列两个方法有什么区别p
- 本文实例讲述了C#使用Matrix执行缩放的方法。分享给大家供大家参考。具体实现方法如下:using System;using System
- 平时开发的工作中, 自己组内的很多大佬经常使用Optional的用法, 自己问他们, 这个到底有什么好处呢,他们说可以很好的规避好空指针的问
- RecyclerView是Android 5.0新增的控件,在android-support-v7下面。官方文档对RecycleView介绍
- 一、依赖传递1. 直接依赖与间接依赖pom.xml 声明了的依赖是直接依赖,依赖中又包含的依赖就是间接依赖(直接依赖的直接依赖),间接依赖虽
- explicit 关键字用于显式声明一个类构造函数是显式而非隐式的,从而禁用类构造函数的隐式自动类型转换。类构造函数默认情况下即声
- 一、前言现在在我们的项目中,使用多数据源已经是很常见的,下面,这里总结一下springboot整合jdbcTemplate配置多数据源的代码
- 又遇到了回调函数,这次打算写下来分享一下。所谓回调函数,或者在面向对象语言里叫回调方法,简单点讲,就是回头在某个时间(事件发生)被调用的函数
- 本文实例为大家分享了Android自定义输入法软键盘的具体代码,供大家参考,具体内容如下1 功能描述触屏设备主界面中有一个文本编辑框,底部区
- 1,通过Handler机制主线程中定义Handler,子线程发消息,通知Handler完成UI更新,Handler对象必须定义在主线程中,如
- 前言在上篇文章《初识GraphQL》中我们大致的了解了GraphQL作用,并通过简单示例初步体验了GraphQL的使用。下面我们从Hello
- 本文实例讲述了java实现基于SMTP发送邮件的方法。分享给大家供大家参考。具体实现方法如下:import java.util.Date;i
- Map接口Map类似y(x)=x;这样的函数(key对应x,value对应y)Map与Collection并列存在。用于保存具有映射关系的数
- 前言本文是精讲RestTemplate第7篇,前篇的blog访问地址如下:RestTemplate在Spring或非Spring环境下使用精
- 1. 新增XML文件XMLToolV2 _xmlHelper = new XMLToolV2(@"C:\20140311blogs