Nacos源码环境搭建和源码流程图

Nacos源码环境搭建和源码流程图

每天多学一点点~
话不多说,这就开始吧…

文章目录

  • Nacos源码环境搭建和源码流程图
  • 1.前言
  • 1.为何要看源码
  • 2.看源码方法
  • 3.Nacos源码环境搭建
  • 4.Nacos源码流程图
  • 5.结语

1.前言

难得清明三天小长假,静下心来学习学习源码~这里分享一下看源码心得,仅此而已
耐得住寂寞,守得住繁华,奥里给

浅谈Nacos中的CAP

1.为何要看源码

  1. 提升技术功底:学习源码里的优秀设计思想,比如一些疑难问题的解决思路,还有一些优秀的设计模式,整体提升自己的技术功底
  2. 深度掌握技术框架:源码看多了,对于一个新技术或框架的掌握速度会有大幅提升,看下框架demo大致就能知道底层的实现,技术框架更新再快也不怕
  3. 快速定位线上问题:遇到线上问题,特别是框架源码里的问题(比如bug),能够快速定位,这就是相比其他没看过源码的人的优势
  4. 对面试大有裨益:面试一线互联网公司对于框架技术一般都会问到源码级别的实现
  5. 知其然知其所以然:对技术有追求的人必做之事,使用了一个好的框架,很想知道底层是如何实现的
  6. 拥抱开源社区:参与到开源项目的研发,结识更多大牛,积累更多优质人脉

以上是博主cv的。。。

2.看源码方法

  1. 先使用:先看官方文档快速掌握框架的基本使用
  2. 抓主线:找一个demo入手,顺藤摸瓜快速静态看一遍框架的主线源码(抓大放小),画出源码主流程图,切勿一开始就陷入源码的细枝末节,否则会把自己绕晕 凭经验猜
  3. 画图做笔记:总结框架的一些核心功能点,从这些功能点入手深入到源码的细节,边看源码边画源码走向图,并对关键源码的理解做笔记,把源码里的闪光点都记录下来,后续借鉴到工作项目中,理解能力强的可以直接看静态源码,也可以边看源码边debug源码执行过程,观察一些关键变量的值
  4. 整合总结:所有功能点的源码都分析完后,回到主流程图再梳理一遍,争取把自己画的所有图都在脑袋里做一个整合
  5. 源码没事就多看几遍,看一遍不看,过几天肯定忘

这里是博主自己总结的。。。

3.Nacos源码环境搭建

Nacos官方文档

Nacos核心功能点
服务注册:Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地址、端口等信息。Nacos Server接收到注册请求后,就会把这些元数据信息存储在一个双层的内存Map中。
服务心跳:在服务注册后,Nacos Client会维护一个定时心跳来持续通知Nacos Server,说明服务一直处于可用状态,防止被剔除。默认5s发送一次心跳。
服务同步:Nacos Server集群之间会互相同步服务实例,用来保证服务信息的一致性。
服务发现:服务消费者(Nacos Client)在调用服务提供者的服务时,会发送一个REST请求给Nacos Server,获取上面注册的服务清单,并且缓存在Nacos Client本地,同时会在Nacos Client本地开启一个定时任务定时拉取服务端最新的注册表信息更新到本地缓存
服务健康检查:Nacos Server会开启一个定时任务用来检查注册服务实例的健康情况,对于超过15s没有收到客户端心跳的实例会将它的healthy属性置为false(客户端服务发现时不会发现),如果某个实例超过30秒没有收到心跳,直接剔除该实例(被剔除的实例如果恢复发送心跳则会重新注册)

下载nacos源码
git clone https://github.com/alibaba/nacos
我这里选择的是 Tag 1.1.4版本
在这里插入图片描述
源码整体结构(注意,nacos源码导入要求maven 3.2.5以上版本):

在这里插入图片描述
直接运行console模块里的 com.alibaba.nacos.Nacos.java

  1. # 增加启动vm参数,注意nacos.home目录要改成你自己源码对应的distribution模块目录
  2. -Dnacos.standalone=true -Dnacos.home=D:\xxxxx\nacos\distribution

在这里插入图片描述
访问地址

http://127.0.0.1:8848/nacos/\#/login

4.Nacos源码流程图

博主自己总结的,欢迎一起学习探讨
在这里插入图片描述

5.结语

世上无难事,只怕有心人,每天积累一点点,fighting!!!

发表评论

表情:
评论列表 (有 0 条评论,69人围观)

还没有评论,来说两句吧...

相关阅读

    相关 mybatis环境

    前言 mybatis在众多的数据持久化框架中应该说是目前使用最多的,其优秀的设计和底层封装,值得很多开发人员进行学习,下面让我们先来构建一下mybatis的源码阅读环境吧

    相关 dubbo环境

    dubbo由于很多jar包无法下载到而在导入后存在大量错误。这里记录一下解决方案。         1、通过maven安装alibaba open parent。地址http