在nacos 的 1.X版本,两个客户端注册同一个临时服务(服务名、分组名、集群名、ip和端口都一样),会出现后注册的 客户端的服务信息(权重、元数据)覆盖前一个的情况;
在nacos 的 2.X版本,两个客户端注册同一个临时服务(服务名、分组名、集群名、ip和端口都一样),由于nacos的distroKey是基于连接的,所以会出现两条一样的数据:
这会带来一个问题:假如我的业务逻辑里面,要根据返回的服务实例的元数据里面的version字段来适配不同的逻辑,这么一来,图片中的实例无论哪个version都会被适配到。
从nacos 的设计来看,似乎没办法避免这样的事情。
个人觉得这个问题衍生出另外一个问题,就是,虽然开启了鉴权,但是如果一个账号拥有写权限,那么它就可以操作所有的服务数据。
可不可以考虑实现一下账号权限跟服务绑定,防止账号密码泄露导致影响面过大,或者恶意客户端操作所有的服务信息?
看到开源之夏2021 nacos 有鉴权相关的规划,会考虑这个需求么?
原提问者GitHub用户MajorHe1
鉴权相 关规划只会把对应拓展接口进行一定的修改和暴露, 如果您需要有鉴权相关的需求,可以参照当前nacos提供的简单鉴权demo进行拓展。比如细化鉴权粒度。
简单鉴权demo本身只会控制在namespace维度。
回答一下问题1:
2个客户端注册同一个服务(服务名、分组名、集群名、ip和端口都一样),但是他是两个客户端,实际上应该是两个实例,所以1.X版本覆盖的话其实有一定的不合理性,除非两者内容完全一致,否则不应该替换。
然而实际上这种情况也不是很容易出现,只有代注册的时候可能会出现。
原回答者GitHub用户KomachiSion
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。