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

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

1、本地环境准备

Maven: 3.5.4

Java: 1.8

开发工具:idea

版本控制工具: git

2、下载源码

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

bash 复制代码
#下载源码
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, 启动前先编辑一下,设置成单机模式启动

bash 复制代码
-Dnacos.standalone=true

启动后观察控制台日志,显示成功启动

bash 复制代码
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。

java 复制代码
/**
 * @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的朋友应该会很清楚这点。

相关推荐
知识即是力量ol10 天前
微服务架构:从入门到进阶完全指南
java·spring cloud·微服务·nacos·架构·gateway·feign
码农阿豪11 天前
Nacos 日志与 Raft 数据清理指南:如何安全释放磁盘空间
java·安全·nacos
学习是生活的调味剂16 天前
nacos原理之服务注册浅析
java·开发语言·nacos·注册中心
金刚猿18 天前
03_虚拟机中间件部署_Nacos 部署单机模式、配置鉴权
linux·中间件·nacos·配置鉴权
利刃大大19 天前
【SpringCloud】Nacos简介 && 安装 && 快速入手 && 负载均衡
spring·spring cloud·微服务·nacos·负载均衡
没有bug.的程序员25 天前
服务注册与发现:Consul vs. Nacos 的选型博弈、内核拆解与混合云实战指南
java·spring boot·spring·nacos·consul·服务注册于发现·内核拆解
CodeCaptain1 个月前
nacos-2.3.2-OEM与nacos3.1.x的差异分析
java·经验分享·nacos·springcloud
斯普信专业组1 个月前
Nacos-MCP 融合架构:运维nacos的MCP服务项目
运维·nacos·架构
魔芋红茶1 个月前
NACOS 二次开发指南
nacos
没有bug.的程序员1 个月前
Spring Cloud Alibaba:Nacos 配置中心与服务发现的工业级深度实战
java·spring boot·nacos·服务发现·springcloud·配置中心·alibaba