nacos怎么修改服务分组_nacos服务注册如何配置分组?

本文探讨了Nacos服务注册中缺少分组配置的问题,通过分析源码发现spring-cloud-starter-alibaba-nacos-discovery在注册服务时未封装group。尽管Nacos客户端的NamingService提供了分组注册的方法,但在实际使用中可能需要手动指定。作者认为group对于服务的大类拆分具有重要意义。
摘要由CSDN通过智能技术生成

同问,度娘一番,没找到答案,最终看的代码,大概知道怎么回事了。

这个是下面引用源码的版本

org.springframework.cloud

spring-cloud-starter-alibaba-nacos-discovery

com.alibaba.nacos

nacos-client

0.2.2.RELEASE

com.alibaba.nacos

nacos-client

1.1.0

没有group的原因在于下面的代码

/* org.springframework.cloud.alibaba.nacos.registry.NacosServiceRegistry */

//spring-cloud-alibaba-nacos-discovery-0.2.2.RELEASE.jar

// org.springframework.cloud.alibaba.nacos.registry.NacosServiceRegistry

// 最终的实现类为 com.alibaba.nacos.client.naming.NacosNamingService

//nacos-client-0.2.1-RC1.jar

private final NamingService namingService;

@Override

public void register(Registration registration) {

if (StringUtils.isEmpty(registration.getServiceId())) {

log.warn("No service to register for nacos client...");

return;

}

String serviceId = registration.getServiceId();

Instance instance = new Instance();

instance.setIp(registration.getHost());

instance.setPort(registration.getPort());

instance.setWeight(nacosDiscoveryProperties.getWeight());

instance.setClusterName(nacosDiscoveryProperties.getClusterName());

instance.setMetadata(registration.getMetadata());

try {

namingService.registerInstance(serviceId, instance);

log.info("nacos registry, {} {}:{} register finished", serviceId,

instance.getIp(), instance.getPort());

}

catch (Exception e) {

log.error("nacos registry, {} register failed...{},", serviceId,

registration.toString(), e);

}

}

主要是 namingService.registerInstance(serviceId, instance); 这一句,这句代码是去注册服务的,但是很明显,里面没有 group ,为什么这么说,是因为 NamingService 的实现类 中 有 下面的方法

/* com.alibaba.nacos.client.naming.NacosNamingService */

//nacos-client-0.2.1-RC1.jar

@Override

public void registerInstance(String serviceName, Instance instance) throws NacosException {

registerInstance(serviceName, Constants.DEFAULT_GROUP, instance);

}

@Override

public void registerInstance(String serviceName, String groupName, Instance instance) throws NacosException {

if (instance.isEphemeral()) {

BeatInfo beatInfo = new BeatInfo();

beatInfo.setServiceName(NamingUtils.getGroupedName(serviceName, groupName));

beatInfo.setIp(instance.getIp());

beatInfo.setPort(instance.getPort());

beatInfo.setCluster(instance.getClusterName());

beatInfo.setWeight(instance.getWeight());

beatInfo.setMetadata(instance.getMetadata());

beatInfo.setScheduled(false);

long instanceInterval = instance.getInstanceHeartBeatInterval();

beatInfo.setPeriod(instanceInterval == 0 ? DEFAULT_HEART_BEAT_INTERVAL : instanceInterval);

beatReactor.addBeatInfo(NamingUtils.getGroupedName(serviceName, groupName), beatInfo);

}

serverProxy.registerService(NamingUtils.getGroupedName(serviceName, groupName), groupName, instance);

}

不知道 spring-cloud-starter-alibaba-nacos-discovery 是基于什么考虑没有将 group 进行封装(或者我没有找到?),

个人觉得 group 还是有必要的,我的想法是拿来做服务的大类拆分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值