码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Nacos源码分析专题(一)-环境准备


    文章目录

      • 1. 引言
      • 2.下载Nacos源码
      • 3.导入项目工程Nacos源码
      • 4.proto编译
      • 5.什么是protobuf
        • 5.1.安装protoc
        • 5.2.编译proto
      • 6.运行

    1. 引言

    要研究Nacos源码自然不能用打包好的Nacos服务端jar包来运行,需要下载源码自己编译来运行。

    2.下载Nacos源码

    Nacos的GitHub地址:https://github.com/alibaba/nacos

    课前资料中已经提供了下载好的1.4.2版本的Nacos源码:
    在这里插入图片描述
    如果需要研究其他版本的同学,也可以自行下载:

    大家找到其release页面:https://github.com/alibaba/nacos/tags,找到其中的1.4.2.版本:
    在这里插入图片描述
    点击进入后,下载Source code(zip):
    在这里插入图片描述

    3.导入项目工程Nacos源码

    我们的课前资料提供了一个微服务项目,包含了服务注册、发现等业务。
    在这里插入图片描述
    将之前下载好的Nacos源码解压到项目目录中:
    在这里插入图片描述
    然后,使用IDEA将其作为一个module来导入:

    1)选择项目结构选项:
    在这里插入图片描述
    在这里插入图片描述
    在弹出窗口中,选择nacos源码目录:
    在这里插入图片描述
    然后选择maven模块,finish:
    在这里插入图片描述
    最后,点击OK即可:
    在这里插入图片描述
    导入后的项目结构:
    在这里插入图片描述

    4.proto编译

    Nacos底层的数据通信会基于protobuf对数据做序列化和反序列化。并将对应的proto文件定义在了consistency这个子模块中:
    在这里插入图片描述
    我们需要先将proto文件编译为对应的Java代码。

    5.什么是protobuf

    protobuf的全称是Protocol Buffer,是Google提供的一种数据序列化协议,这是Google官方的定义:

    Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。

    可以简单理解为,是一种跨语言、跨平台的数据传输格式。与json的功能类似,但是无论是性能,还是数据大小都比json要好很多。

    protobuf的之所以可以跨语言,就是因为数据定义的格式为.proto格式,需要基于protoc编译为对应的语言。

    5.1.安装protoc

    Protobuf的GitHub地址:https://github.com/protocolbuffers/protobuf/releases

    我们可以下载windows版本的来使用:
    在这里插入图片描述
    另外,课前资料也提供了下载好的安装包:
    在这里插入图片描述
    解压到任意非中文目录下,其中的bin目录中的protoc.exe可以帮助我们编译:
    在这里插入图片描述
    然后将这个bin目录配置到你的环境变量path中,可以参考JDK的配置方式:
    在这里插入图片描述

    5.2.编译proto

    进入nacos-1.4.2的consistency模块下的src/main目录下:
    在这里插入图片描述
    然后打开cmd窗口,运行下面的两个命令:

    protoc --java_out=./java ./proto/consistency.proto
    protoc --java_out=./java ./proto/Data.proto
    
    
    • 1
    • 2
    • 3

    如图:
    在这里插入图片描述
    会在nacos的consistency模块中编译出这些java代码:
    在这里插入图片描述

    6.运行

    nacos服务端的入口是在console模块中的Nacos类:
    在这里插入图片描述
    我们需要让它单机启动:
    在这里插入图片描述
    然后新建一个SpringBootApplication:
    在这里插入图片描述
    然后填写应用信息:
    在这里插入图片描述
    然后运行Nacos这个main函数:
    在这里插入图片描述
    将服务启动后,可以查看nacos控制台:

  • 相关阅读:
    【PyQt5】教你如何使用designer制作可上下移动的界面
    C++从零开始的打怪升级之路(day39)
    2022 年杭电多校第七场补题记录
    【计算机网络】Cookie、Session和上传文件重点知识汇总
    linux内核分析:进程通讯方式
    RabbitMQ:主题模式
    Deep Learning-Based Object Pose Estimation:A Comprehensive Survey
    轨道交通工业控制系统信息安全:分析与展望
    Netty的InboundHandler 和OutboundHandler
    【CC3200AI 实验教程10】疯壳·AI语音人脸识别(会议记录仪/人脸打卡机)-WIFI-TCP网络通信
  • 原文地址:https://blog.csdn.net/BruceLiu_code/article/details/126032254
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号