当前位置: 首页 > news >正文

Nacos源码学习-本地环境搭建

本文主要记录如何在本地搭建Nacos调试环境来进一步学习其源码,如果你也刚好刷到这篇文章,希望对你有所帮助。

1、本地环境准备

Maven: 3.5.4
Java: 1.8
开发工具:idea
版本控制工具: git

2、下载源码

官方仓库地址 :https://github.com/alibaba/nacos

#下载源码
git clone https://github.com/alibaba/nacos.git# 选择2.4.3 分支
cd nacos 
git checkout 2.4.3

接下来将项目导入idea中,选择maven compile一下

3、启动server端

入口在console模块 com.alibaba.nacos.Nacos, 启动前先编辑一下,设置成单机模式启动

-Dnacos.standalone=true

在这里插入图片描述
启动后观察控制台日志,显示成功启动

2024-12-06 11:14:03.709  INFO 18384 --- [           main] s.a.ScheduledAnnotationBeanPostProcessor : No TaskScheduler/ScheduledExecutorService bean found for scheduled processing
2024-12-06 11:14:03.729  INFO 18384 --- [           main] c.a.n.c.l.StartingApplicationListener    : Nacos started successfully in stand alone mode. use embedded storage
2024-12-06 11:14:04.095  INFO 18384 --- [7)-192.168.22.3] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2024-12-06 11:14:04.096  INFO 18384 --- [7)-192.168.22.3] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms

在浏览器里输入http://localhost:8848/nacos/index.html
在这里插入图片描述
至此已经启动成功了

4、写个demo尝试注册一下

这个我是在client模块下的test包中添加了一个类com.alibaba.nacos.client.naming.MyTest
通过Nacos 工厂类获取了一个NamingService 对象,然后假设存在一个testService的服务,通过调用registerInstance方法,将其注册到Nacos。

/*** @description:* @date: 2024/12/5**/
public class MyTest {public static void main(String[] args) throws NacosException {Properties properties = new Properties();properties.setProperty("serverAddr", "localhost");properties.put(PropertyKeyConst.NAMESPACE, "public");//超时时间可以设置长点这样方便后面debug调试观察properties.put(CommonParams.NAMING_REQUEST_TIMEOUT, "10000");NamingService namingService = NacosFactory.createNamingService(properties);namingService.registerInstance("testService", "127.0.0.1", 8080);System.out.println("服务注册成功!");}
}

这里可以在最后一行打个断点方便观察,运行main方法后,我们去控制台页面查看一下,发现已经注册上了
在这里插入图片描述
当然我们在实际项目中不会这样手动去注册服务,通过引入spring-cloud-starter-alibaba-nacos-discovery包,然后借助spring自动装配机制来进行自动注册,熟悉spring的朋友应该会很清楚这点。

http://www.lryc.cn/news/498514.html

相关文章:

  • windows 好工具
  • 计算机运行时提示错误弹窗“由于找不到 quazip.dll,无法继续执行代码。”是什么原因?“quazip.dll文件缺失”要怎么解决?
  • 创造未来:The Sandbox 创作者训练营如何赋能全球创造者
  • R语言对简·奥斯汀作品中人物对话的情感分析
  • 股指期货基差为正数,这是啥意思?
  • 黑马程序员MybatisPlus/Docker相关内容
  • 使用 Vue 和 Canvas-Confetti 实现烟花动画特效
  • 【银河麒麟操作系统真实案例分享】内存黑洞导致服务器卡死分析全过程
  • 如何加强游戏安全,防止定制外挂影响游戏公平性
  • SpringBoot整合knife4j,以及会遇到的一些bug
  • 城电科技|光伏廊道是什么?安装光伏廊道有什么好处?
  • 当DHCP服务器分配了同一个IP地址
  • 储能能量自动化调配装置功能介绍
  • vite5+vue3+Ts5 开源图片预览器上线
  • 【深度学习】深入解析长短期记忆网络(LSTMs)
  • 从Web3到智能合约:探索新一代数据交互模式
  • 排查bug的通用思路
  • 如何利用Python爬虫获得商品类目
  • 如何通过 Windows 自带的启动管理功能优化电脑启动程序
  • 大模型学习有什么发展前景?
  • Excel技巧:如何批量调整excel表格中的图片?
  • 独著与编著的区别是?
  • vue中pdf.js的使用,包括pdf显示,跳转指定页面,高亮关键词
  • 【Spring Boot】自动装配机制详解
  • Flink集群搭建整合Yarn运行
  • Linux Ubuntu 安装配置RabbitMQ,springboot使用RabbitMQ
  • 云数据库 MongoDB
  • Ionic 8.4 简介
  • 蓝桥杯系列---class1
  • vue3+elementPlus封装的一体表格