看得懂系列:eureka源码解析之配置文件篇

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 大家好,我是指北君。PS:最近是跳槽的高峰期,我连日加班好多天,整理出了包含16000 多道面试题的面试宝典,并且指北君也会持续更新这份面试宝典中的题目,希望它能帮助大家找到自己心仪的工作!eureka 作为 Spring Cloud 的核心组件,学习他的源码是非常有必要的。

导入到 idea

第一步要导入到 idea,为学习源码打造一把好用的工具。

源码地址:https://github.com/Netflix/eureka,建议 fork 到自己的 git 仓库,自己添加的注释、修改等等都可以提交,以后阅读也会方便很多。

小编这里选用的是 eureka 的 v1.10.10 版本。其他高版本在编译源码的时候总会报各种错误。这个版本编译一次通过。因为小编的电脑问题,只能通过下载 Releases 的方式得到源码。

1.jpg

下载源码后,解压缩到文件夹。


2.jpg

双击文件夹中的 gradlew.bat 文件或者打开 cmd 命令行在里面运行也可以,这个时候它会先下载 gradle,然后才开始编译源码。

3.jpg


最后导入到 idea 中如下图:

4.jpg

web.xml

在 eureka-server 包中的 WEB-INF 下有个 web.xml 文件,学过 java 的童鞋都应该知道 web.xml 是一个网站应用的标配。web.xml 中有 servlet、listener、filter 等信息。

1、web.xml 配置了一个 listener,是 eureka 的核心的启动入口,随着 web 应用的启动而启动。EurekaBootStrap 在 eureka-core 包下面,负责的是 eureka-server 的初始化操作。

5.png



2、配置了 5 个 filter,分别是 statusFilter、requestAuthFilter、rateLimitingFilter、gzipEncodingEnforcingFilter、jersey。6.png


statusFilter:负责状态相关的处理逻辑,对所有的请求开放。

requestAuthFilter:负责对请求进行授权认证,对所有的请求开放。

rateLimitingFilter:负责限流相关逻辑的,默认不开启,如果要打开 eureka-server 内置的限流功能,需要把web文件中 rateLimitingFilter 的的注释打开,让这个 filter 生效。

gzipEncodingEnforcingFilter:拦截 /v2/apps 相关的请求。

jersey:核心的 filiter,拦截所有请求。

3、配置了status.jsp 是欢迎页面、eureka-server 的控制台页面,展示注册服务的信息。

7.png

总结

eureka-server 其实是一个 web 应用,可以被打成 war 包。可以被放在 tomcat 中运行。最重要的核心是 EurekaBootStrap 类。

面试大全包括:包括 Java 集合、JVM、多线程、并发编程、设计模式、SpringBoot、SpringCloud、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、Python、HTML、CSS、Vue、React、JavaScript、Android 大数据、阿里巴巴等大厂面试题等、等技术栈!



相关文章
|
2月前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
19天前
|
存储 缓存 Java
什么是线程池?从底层源码入手,深度解析线程池的工作原理
本文从底层源码入手,深度解析ThreadPoolExecutor底层源码,包括其核心字段、内部类和重要方法,另外对Executors工具类下的四种自带线程池源码进行解释。 阅读本文后,可以对线程池的工作原理、七大参数、生命周期、拒绝策略等内容拥有更深入的认识。
什么是线程池?从底层源码入手,深度解析线程池的工作原理
|
23天前
|
开发工具
Flutter-AnimatedWidget组件源码解析
Flutter-AnimatedWidget组件源码解析
|
19天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
174 37
|
11天前
|
编解码 开发工具 UED
QT Widgets模块源码解析与实践
【9月更文挑战第20天】Qt Widgets 模块是 Qt 开发中至关重要的部分,提供了丰富的 GUI 组件,如按钮、文本框等,并支持布局管理、事件处理和窗口管理。这些组件基于信号与槽机制,实现灵活交互。通过对源码的解析及实践应用,可深入了解其类结构、布局管理和事件处理机制,掌握创建复杂 UI 界面的方法,提升开发效率和用户体验。
56 12
|
3天前
|
Rust Python
Python 解析 toml 配置文件
Python 解析 toml 配置文件
9 1
|
3天前
|
Python
Python 解析 yaml 配置文件
Python 解析 yaml 配置文件
10 0
|
3天前
|
Python
Python 解析 ini 配置文件
Python 解析 ini 配置文件
11 0
|
2月前
|
机器学习/深度学习 计算机视觉 Python
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
41 0
|
2月前
|
网络协议 Ubuntu Linux
在Linux中,设置DNS需要修改哪个配置文件?
在Linux中,设置DNS需要修改哪个配置文件?

推荐镜像

更多
下一篇
无影云桌面