- 使用环境
- dubbo-go 3.0 rc2
- nacos2.0
- 使用nacos做元数据中心
- 解决思路
- 查看服务注册
- 修改服务注册实例
查看服务实例时发现我的服务名称前多了dubbo@
首先试了一下这里把服务名称修正可以解决问题 ,那么可以看看为什么会导致服务名称和我们nacos服务的不一致
端点进入获取服务实例的放法,这里将组名和服务名拼接以后调用了GetServiceInfo方法 之后返回的实例名称就变成了 组名+拼接符号+服务名
在GetServiceInfo方法中 首先在缓存map中获取缓存的服务信息
如果map中没有该key值存在则 进行信息更新updateServiceNow
updateServiceNow 的ProcessServiceJson方法中 将查询到的服务信息更新到hr.serviceInfoMap中去,并写出文件信息
之后返回的service.host中的serviceName已经拼接了组合拼接字符
想到两个方式
1 在调用sc.hostReactor.GetServiceInfo 时将传入的参数直接改为服务名(原本为组名+分隔符@@+服务名)
2 将返回结果中的服务名中的其余字符去除
不确定修改后对其他组的用服务会不会有影响,再测试一下
使用方式一尝试实例将查询不到,返回实例为空
使用方式二尝试修改后发现能调用到了 并且不同分组下的服务之间也没影响
但是这样修改会导致客户端无法正确的在nacos监听服务,猜想这里应该不是问题的所在,servicename确实应该返回拼接后的服务名,应该是在调用服务的时候对有的服务进行判断
用本机测试的时候服务启动客户端服务信息被写到了本地的C:\Users\tanshijie\AppData\Local\Temp\cache\config目录下
Comments | NOTHING