Closed xiaowan closed 6 years ago
@xiaowan 麻烦提供下这个 xsd文件的包位置.方便定位原因.
com/alipay/sofa/infra/config/spring/namespace/schema/rpc.xsd
@xiaowan 这个是https://github.com/alipay/sofa-rpc-boot-projects 这个项目来做 xml 解析的,我来看下
@xiaowan 看了一下
目前 filter 是允许配置的.你依然可以直接配置实用,但是在 ide 里面会飘红,
registry目前不开放对单个服务引用配置不同的服务注册中心.(只在配置中指定一个即可,每个服务配置不同的 registry 目前没有看到比较有意义的需求/使用场景)
之后,我们会将这个 filter 的 xsd 取消注释.但是registry暂时不会放开在 xsd 中.
如果有兴趣,欢迎提pr
嗯,其实就是遇到了某个服务指定特殊的服务注册中心的问题,看到文档里有registry这个参数,实际无法使用...
@xiaowan com/alipay/sofa/rpc/boot/runtime/adapter/helper/ConsumerConfigHelper.java 目前是服务注册中心从从配置中拿到的,目前是 local 和 zk. 因为不同的registry涉及到他的初始化.xml 中只能配置一个名字,但是这个初始化本身还是没有地方做.
方便说下你们这边为什么会对某个服务指定不同的配置中心么.
因为跨了部门,其他部分跟我们部分用的不是同一个服务注册中心....
@xiaowan 那你这个服务中心是自己实现的? 还是说只是不同的 zk 地址?
只是不同的zk地址
另外,可以加下你们的微信群吗,之前加了sofa的小助手,一直没有理我,issue的沟通方式感觉效率低了点...
@xiaowan 如果对方也是一个集群部署,目前这种确实是不支持,如果是单机,可以通过 directurl 来暂时解决.
我们要评估下这个需求的合理性.
@xiaowan 邮箱发我你的微信号.我来加你.
已发送
一种可行的方案.
在这里com.alipay.sofa.rpc.boot.container.RegistryConfigContainer#getRegistryConfig 允许传递不同的 key. 这个 key 是从你配置的这个registry中传递的
然后这里的处理逻辑是根据你的这个 key. 从application.properties中获取以
com.alipay.sofa.rpc.registry.address.+key 作为 key, 获取 registry 的完整配置,然后来初始化
这样使用的时候,只需要在application.properties配置 com.alipay.sofa.rpc.registry.address.zk1=xxx com.alipay.sofa.rpc.registry.address.zk2 =xxx
然后配置中指定zk1,zk2.这种
你看看有没有兴趣提个 pr 哈~
如果该服务没有对应的zk1,zk2配置,则获取全局的 com.alipay.sofa.rpc.registry.address 配置值。
@NeGnail 其实正想这么提来着,如果服务有指定配置中心,使用指定的配置中心,如果没有指定,使用默认的...
@xiaowan 是的。目前 RPC的Sterer 只获取了全局配置。 SOFA-RPC 本身是支持服务级别的注册中心配置的。 如果有兴趣,欢迎提个pr。不过要注意的是 xsd 的描述文件是在这个工程中 SOFABoot 。
这个 xsd 我们来改,不影响解析逻辑,只是 ide 会飘红.
@xiaowan xsd 我们已经修改并发布,可以 rebase 一下 https://github.com/alipay/sofa-rpc-boot-projects/ 的 master, 然后做相关开发即可.
@xiaowan 不知道这个功能怎么样了?有遇到什么困难么?
这个我来认领,在5.4.3中完成.
看到reference里有关于这两个设置被注释掉了,是为什么?