
同一个命名空间下,不同服务分组之间无法通过feigin进行服务调用么?
base调用 auth提示 nacos Load balancer does not have available server ,默认分组调用没有问题
hi,xiazhenyou. 确实像你说的不同的分组即使是在同一个namespace下,是无法进行调用的。其实,我觉得nacos的数据模型缺少一个最佳实践的说明。比如:在多机房参场景下、SET化场景下,namespace、group、cluster分别该怎么设置。
namespace也好,分组也还,只是在服务发现的时候进行隔离使用的。
至于namespace、group、cluster分别该怎么设置,主要还是由业务方来制定,不同的业务场景,需要的级别和要求都不相同。社区不太好给出所谓的最佳实践。
不过有一些公司的使用案例,可能可以参考下。
同时也大家把自己的使用案例写成文章发布,既能够给别人参考,也可以让大家讨论下是否有更好的使用方式。
我是namespace做环境隔离。想通过group做不同业务隔离的。我以为goup只是用来做分组。没想到也做服务隔离。看来只能服务注册与发现不做分组了。
我的想法跟楼主一样的, 看来也要改成同一个分组了。。
我的想法跟楼主一样的,看来也要改成同一个分组了。。
我是名称空间做环境隔离。想通过组做不同业务隔离的。我以为goup只是用来做分组。没想到也做服务隔离。看来只能服务注册与发现不做分组了。
我在钉钉群问管理,他说同space不同组服务间可以互调,但是我问他为什么调不通,他说:“spring cloud的设计问题”,我真是...
我看了下大家的反馈, 感觉并没有什么问题,大家用namespace做环境隔离,比如dev,test,prod等。
然后又用group做业务隔离,既然隔离了那当然是不能调用。
至于大家所说的不同group不能调用的问题,我觉得可能是上下文没有对齐。
比如我有一个A服务, 分了2个组 G1@@A和G2@@A,这两个A之间当然是隔离的,那如果有个B服务,他想调用G1的A服务,当然是没问题的,只需要subscribe G1@@A就可以了。 无所谓B服务是G1还是G2(单从nacos角度看)。
然后是spring cloud的问题,启动的时候可能指定了某个Group 从而导致其订阅和发布服务时,都只会选用指定的Group。无法像上述一样指定发布G1服务却订阅G2服务,具体需要看是spring-cloud-nacos是这么实现的还是spring-cloud的group语义就是这样的。
如果是前者,可以到spring-cloud-nacos去提issue,然后发起讨论怎么改合适,甚至自己贡献代码。
如果是后者,那么其实spring-cloud的设计层面,就希望大家使用的时候做隔离,同条链路就应该在一个分组。
感谢大家回答。
和楼主一样的问题,应该是大部分的需求场景。namespace隔离,group(配置分开)服务之间应该是可以相互调用的,特别是一些公用服务,不同组也要统一调用公用服务的,不然公用服务要每个项目拷贝一份,或者不用分组来相互调用了。。。 @KomachiSion
我用自定义的Bean重写了NacosServiceDiscovery中的getInstances方法,使其查找服务实例的时候不传group参数,算是实现了我的需求,但是我不清楚这样做有什么隐藏的风险。
大家有什么建议吗?