当前位置:网站首页>Nacos源码分析专题(一)-环境准备
Nacos源码分析专题(一)-环境准备
2022-08-02 02:35:00 【IT-老牛】
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
如图:
会在nacos
的consistency
模块中编译出这些java代码:
6.运行
nacos服务端的入口是在console模块中的Nacos类:
我们需要让它单机启动:
然后新建一个SpringBootApplication
:
然后填写应用信息:
然后运行Nacos
这个main
函数:
将服务启动后,可以查看nacos
控制台:
边栏推荐
猜你喜欢
BioVendor人俱乐部细胞蛋白(CC16)Elisa试剂盒研究领域
Good News | AR opens a new model for the textile industry, and ALVA Systems wins another award!
IMU预积分的简单理解
qt点云配准软件
很有意思的经历,很有意思的项目--文件夹对比工具
FOFAHUB usage test
Lombok
nacos startup error, the database has been configured, stand-alone startup
FOFAHUB使用测试
【web】理解 Cookie 和 Session 机制
随机推荐
考完PMP学什么?前方软考等着你~
Analysis of the status quo of digital transformation of manufacturing enterprises
Install mysql using docker
2022-08-01 安装mysql监控工具phhMyAdmin
KICAD 拉线宽度无法修改,解决方法
记一个gorm初始化的坑
The failure to create a role in Dahua Westward Journey has been solved
字符串常用方法
OC和Swift语言的区别
极大似然估计
项目场景 with ERRTYPE = cudaError CUDA failure 999 unknown error
指针数组和数组指针
亲身经历过的面试题
局部敏感哈希:如何在常数时间内搜索Embedding最近邻
leetcode / anagram in string - some permutation of s1 string is a substring of s2
790. 数的三次方根
Nanoprobes丨1-mercapto-(triethylene glycol) methyl ether functionalized gold nanoparticles
TKU remembers a single-point QPS optimization (I wish ITEYE is finally back)
2022-08-01 mysql/stoonedb慢SQL-Q18分析
Electronic Manufacturing Warehouse Barcode Management System Solution