之前介绍过dashboard模块也引入的sentinel的核心模块sentinel-core,所以这里通过启动dashboard来分析sentinel在系统初次加载过程中做了什么?
本文基于:1.3.0-GA版本
一、启动dashboard项目
dashboard项目通过CommonFilter过滤器实现对资源的保护的。
image.png
启动项目后,访问首页,默认localhost:8080
在过滤器CommonFilter就会拦截请求的资源,如图。
image.png
这个时候就进入到sentinel的核心模块了。
二、进入ContextUtil
首先执行ContextUtil静态快内容,如图:
image.png
1、首先获取默认的Context名称:sentinel_default_context;Context是一次调用的上下文内容,主要包括:name,entranceNode(调用树资源入口),curEntry(当前实体)等信息,关于这个Context上下文、EntranceNode等后续再介绍。
2、构建一个EntranceNode节点node。
3、构建一个跟节点ROOT,并增加一个字节点node;见第三步Constants
4、把资源信息放到一个 contextNameNodeMap,后面进入资源名称相同直接