Open trickMin opened 6 months ago
curl ${dataip}:9622/digest/datum/getDataInfoIdList 这个http api可以获取到单台data server上的所有的service列表,目前没有api把所有data server上的service列表做一个汇总。
那就是需要基于所有机器做一次汇总吗
getDataInfoIdList 这个接口是只拿到 DataInfoId 列表吧 应该不包含 详细数据吧?
那就是需要基于所有机器做一次汇总吗
getDataInfoIdList 这个接口是只拿到 DataInfoId 列表吧 应该不包含 详细数据吧?
对,需要基于所有机器做一次汇总;getDataInfoIdList只获取dataid列表,如果需要获取详细数据,可以再根据com.alipay.sofa.registry.server.data.resource.DataDigestResource#getDatumByDataInfoId 这个http api遍历查询每一个service的详细数据。 没有把这些动作包含在一个api全量返回,主要是数据量太大时这样的api会有性能问题。
好的,大概了解了;那想再问一个问题,如果我希望用一个Java客户端接入SDK,增量地订阅服务,比如动态地增加订阅数量,这样可行性高吗?用这个Java客户端订阅1000个服务的可靠性高吗,因为我理解订阅一个服务就会开启一个Thread监听,会对资源产生负担嘛?
好的 十分感谢
请问,我基于client API的订阅回调获取到了UserData(如下JSON所示),但其中不包含发布方的method,这块信息基于SDK该如何获取?
DefaultUserData{
zoneData={
DEFAULT_ZONE=[
10.10.10.10:12200?rpcVer=50502&serialization=hessian2&weight=100&timeout=3000&appName=service-provider&p=1&v=4.0&_SERIALIZETYPE=hessian2&_WEIGHT=100&_TIMEOUT=3000&app_name=service-provider&startTime=1711957038325
]
},
localZone='DEFAULT_ZONE'
}
目前开源的rpc框架,比如dubbo和sofarpc,在注册发布者信息的时候,都是注册在interface级别,不会注册在method级别。所以使用这些rpc框架的时候,注册中心是没有这个数据的。 除非你修改rpc框架的逻辑将method信息也发布到注册中心。
curl ${dataip}:9622/digest/datum/getDataInfoIdList 这个http api可以获取到单台data server上的所有的service列表,目前没有api把所有data server上的service列表做一个汇总。
我在本地使用integration方式起动了之后,使用 curl http://localhost:9622/digest/datum/getDataInfoIdList 会报404?是我启动的有问题还是的确没有provider注册上去?
Your question
我这在做系统的对接,希望有一种方式可以获取sofa-registry全量服务(配置)信息,我看Java SDK只能订阅单独的dataId信息,有没有什么方式可以获取全量的,例如SDK方式或HTTP方式?
Your scenes
对接系统,需要获取全量信息,也需要后续支持变更推送等
Your advice
describe the advice or solution you'd like
Environment
java -version
):uname -a
):