当前位置:网站首页>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
控制台:
边栏推荐
猜你喜欢
使用docker安装mysql
Good News | AR opens a new model for the textile industry, and ALVA Systems wins another award!
AWR analysis report questions for help: How can SQL be optimized from what aspects?
2022 Henan Youth Training League Game (3)
IMU预积分的简单理解
Docker-compose安装mysql
字符串常用方法
Reflex WMS Intermediate Series 7: What should I do if I want to cancel the picking of an HD that has finished picking but has not yet been loaded?
FOFAHUB usage test
Outsourcing worked for three years, it was abolished...
随机推荐
Electronic Manufacturing Warehouse Barcode Management System Solution
What to study after the PMP exam?The soft exam ahead is waiting for you~
2022-07-30 mysql8 executes slow SQL-Q17 analysis
【web】Understanding Cookie and Session Mechanism
菜刀webshell特征分析
2022 NPDP take an examination of how the results?How to query?
2022-08-01 Install mysql monitoring tool phhMyAdmin
详解最强分布式锁工具:Redisson
Remember a pit for gorm initialization
1688以图搜货
AWR分析报告问题求助:SQL如何可以从哪几个方面优化?
指针数组和数组指针
Moonbeam and Project integration of the Galaxy, bring brand-new user experience for the community
ApiFox 基本使用教程(浅尝辄止,非广)
openGauss切换后state状态显示不对
FOFAHUB usage test
优炫数据库导库导错了能恢复吗?
BioVendor人俱乐部细胞蛋白(CC16)Elisa试剂盒研究领域
qt点云配准软件
极大似然估计