Nacos Client2.2.9源码启动问题
迪丽瓦拉
2025-06-01 19:42:16
0次

Nacos Client2.2.9源码启动问题

1、开启服务端

源码启动,推荐使用稳定版本作为 服务端。

我是用了最新的2.2.1的nacos版本处理了一些问题,现在启动成功

image-20230321210455736

nacos首页

http://192.168.3.111:8848/nacos/index.html

2、配置客户端client

直接一个springboot项目。

写一个controller

image-20230321210605529

2.1 把当前springboot升级为springCloud项目

maven的pom配置修改

springboot 版本  2.3.12.RELEASE
Spring Cloud Version  Hoxton.SR12
Spring Cloud Alibaba Version 2.2.9.RELEASE

如我的配置

org.springframework.bootspring-boot-starter-parent2.3.12.RELEASE com.shinenacosClientDemo0.0.1-SNAPSHOTnacosClientDemonacosClientDemo1.8org.springframework.bootspring-boot-starter-webcom.alibaba.cloudspring-cloud-starter-alibaba-nacos-discoveryjsr305com.google.code.findbugsorg.projectlomboklomboktrueorg.springframework.bootspring-boot-starter-testtestorg.junit.vintagejunit-vintage-engineorg.springframework.cloudspring-cloud-dependenciesHoxton.SR12pomimportcom.alibaba.cloudspring-cloud-alibaba-dependencies2.2.9.RELEASEpomimport

2.1 配置yaml

server:port: 10001
spring:application:name: nacosClientDemo//注册服务地址cloud:nacos:server-addr: 192.168.3.111:8848

image-20230321213249534

注册成功

再通过一个client启动一个微服务。

image-20230321215452226

image-20230321215439455

3、看看client注册做了什么

3.1、client 注册时,如何打断点

3.1.1、找这个服务发现的包。
3.1.2 下面的spring.factories
3.1.3 下面的NacosDiscoveryAutoConfiguration

同命名下面的 自动配置

com.alibaba.cloud.nacos.discoveryNacosDiscoveryAutoConfiguration

image-20230321220909894

3.1.4 点进去发现配置文件
public class NacosDiscoveryAutoConfiguration {public NacosDiscoveryAutoConfiguration() {}@Bean@ConditionalOnMissingBeanpublic NacosDiscoveryProperties nacosProperties() {return new NacosDiscoveryProperties();}@Bean@ConditionalOnMissingBeanpublic NacosServiceDiscovery nacosServiceDiscovery(NacosDiscoveryProperties discoveryProperties, NacosServiceManager nacosServiceManager) {return new NacosServiceDiscovery(discoveryProperties, nacosServiceManager);}
}
3.1.5关键重点是 nacosServiceDiscovery

我的是版本有点问题。

应该是NacosServiceRegistryAutoConfiguration,

3.1.6 NacosServiceRegistryAutoConfiguration,

NacosAutoServiceRegistration

image-20230321222331645

最后没有到http,太搞笑了。

走的是grpc的代理方法。

那应用是跟踪哪个类?

这里,我提供两种方法。

1、代码分析法,如果有多个实现类,肯定在前面的某个步骤会去创建该类,因为这个类不会无缘无故的就产生的。计算机的程序代码是很规范的,你要他怎么做,他才怎么做,不会无故产生,俗话说事出反常必有妖。
2、断点调试法,这个方法简单粗暴,只要你debug一下,跟着debug进去,到哪个类处理,那就是哪个类处理。
我们还是倒回来看下,通过代码分析具体一下。还记得上面说的创建NamingService吗,这里我们进去看下这个NamingService的具体的实现方法NacosNamingService的构造方法。

有一个初始化方法。获取代理模式

   private void init(Properties properties) throws NacosException {ValidatorUtils.checkInitParam(properties);this.namespace = InitUtils.initNamespaceForNaming(properties);InitUtils.initSerialization();InitUtils.initWebRootContext(properties);initLogName(properties);this.changeNotifier = new InstancesChangeNotifier();NotifyCenter.registerToPublisher(InstancesChangeEvent.class, 16384);NotifyCenter.registerSubscriber(changeNotifier);this.serviceInfoHolder = new ServiceInfoHolder(namespace, properties);this.clientProxy = new NamingClientProxyDelegate(this.namespace, serviceInfoHolder, properties, changeNotifier);}

这个代理执行器。

代理模式的作用就是这个意思。

要执行的具体方法都在这个代理执行器里面。

    private NamingClientProxy getExecuteClientProxy(Instance instance) {return instance.isEphemeral() ? grpcClientProxy : httpClientProxy;}

可以看到如果是临时实例,就是用 grpc

永久实例,就用httpClientProxy。

image-20230321230555417

3.1.6 重点是那个代理类

3.1.7 重点是 instance.isEphemeral()是否是临时实例

决定是走 http还是走grpc

相关内容

热门资讯

10月1日至4日,湖北A级旅游... 10月4日晚,湖北省文化和旅游厅公布2026年国庆节第四天全省假日文旅市场情况:全省大部分地区天气由...
辽宁朝阳文旅赴京,邀请北京游客... 10月3日,正值国庆黄金周出游热潮高涨之际,辽宁省朝阳市文化旅游和广播电视局携全域优质文旅资源、特色...
“千万年薪招聘NPC”冲上热搜... 山西晋城司徒小镇豪掷3000万,计划招聘百名NPC(非玩家角色),最高开出千万年薪,凭借短视频热度未...
1390岁的塔长啥样?主播带你... 现代快报讯(记者 姜振军)“屏幕前的朋友们大家好,我是果果!”“大家好,我是提子!”10月4日下午,...
江苏淮安:老厂房变身国庆文旅新...   国庆期间,江苏省淮安市清江浦区红旗纸箱厂老厂房经改造,成为复古工业主题沉浸式互动剧场,上演沉浸式...
临港国庆享盛景 藏蓝护航假日游 国庆长假,临港地区文旅盛宴轮番上演,海昌海洋公园、耀雪冰雪世界、滴水湖烟花秀、国风嘉年华、上海天文馆...
国庆黄金周过半!成都市郫都区文... 封面新闻记者 秦怡10月4日,国庆黄金周进入“下半程”。封面新闻记者从成都市郫都区文体旅局了解到,今...
约满,限流!全国多处景区发布公... 来源:应急管理部今天是国庆假期第4天假期过半你在哪里耍?不少热门景区人潮涌动开启“人从众”模式四川、...
年轻态里玩转“电影+”,“星海... 海边草坪变身露天影院,市集、懒人沙发、海风交织成浪漫的观影记忆。10月1日至3日,“星海拾光·电影奇...
“演唱会+潮玩休闲” 来成都凤... 封面新闻记者 赖芳杰这个国庆,成都城北的氛围感被凤凰山体育公园拉满!10月3日,李健「万物安生时」巡...