美文网首页
服务治理 - ACL机制,禁止上游调用

服务治理 - ACL机制,禁止上游调用

作者: 赤子心_d709 | 来源:发表于2019-02-27 19:38 被阅读2次

背景

服务调用的链路中,如果下游想要禁止某一个上游的调用(上游调用不合理,或者服务治理上的其他考量),需要平台上有相关功能

定义

ACL是以server端视角进行配置的
如A调用B的方法b,如果B不希望A可以调用方法b,则当A尝试调用时,框架会进行阻止。
当框架因为ACL规则而阻止A的client进行调用时,框架抛出对应异常

实体名称

upstream:上游
downstream:下游
methodName:方法名

上游可以根据需要更加细化,比如包含cluster名称等

实现

配置ACL,写配置

即用一个分布式服务框架,如zk等,写一个特定key
如/ACL/upstream/downstream/methodName

值为0或者1
为1则代表downstream的methodName方法禁止被upstream调用

配置生效,读配置

框架上用middleware,切面等方式(我是以py的django框架为基础,其他语言也有自己的框架),该中间件的处理在upstream调用下游的时候

比如upstream在调用downstream的方法methodName的时候,
会去访问分布式配置的key “/ACL/upstream/downstream/methodName”

如果为1,代表被下游禁止,则抛异常,业务层自行处理
如果为0,代表正常调用,则走后续的middleware,切面,调用rpc等

思考

1.为什么不在下游加一个上游列表开关,调用的时候再禁止?

快速失败更好,反正都不让调用,为何不直接在上层就禁止掉,更快且更省带宽

2.适用场景

ACL控制毕竟属于写少读多的场景,配置几次,一直会被读
不至于说频繁的禁止再恢复

相关文章

  • 服务治理 - ACL机制,禁止上游调用

    背景 服务调用的链路中,如果下游想要禁止某一个上游的调用(上游调用不合理,或者服务治理上的其他考量),需要平台上有...

  • 服务治理 - 降级机制,百分比控制下游调用

    背景 类似上文ACL机制是下游限制上游,这里同样有场景上游限制下游调用服务调用的链路中,如果上游想要禁止某一个下游...

  • java面试中经常会被问到分布式面试题

    1、Dubbo的底层实现原理和机制 –高性能和透明化的RPC远程服务调用方案 –SOA服务治理方案 Dubbo缺省...

  • java面试中经常会被问到分布式面试题

    1、Dubbo的底层实现原理和机制 –高性能和透明化的RPC远程服务调用方案 –SOA服务治理方案 Dubbo缺省...

  • Spring Cloud-1.服务治理

    服务治理 服务治理用来实现各个微服务示例的自动化注册与发现。 服务治理围绕“服务注册”和“服务发现”机制来完成对微...

  • 服务治理SpringCloud Eureka

    服务治理SpringCloud Eureka 什么是服务治理在传统rpc远程调用中,服务与服务依赖关系,管理比较复...

  • dubbo常见的一些面试题

    什么是Dubbo? Duubbo是一个RPC远程调用框架, 分布式服务治理框架 什么是Dubbo服务治理? 服务与...

  • 微服务之服务治理

    服务治理所解决的问题 在传统rpc远程调用中,服务与服务依赖关系,管理比较复杂,所以需要使用服务治理,管理服务与服...

  • Dubbo

    Dubbo(服务治理框架) RPC 各服务都要实现rpc协议,才能实现服务间的调用 rpc:远程过程调用协议,是一...

  • Dubbo原理与优缺点

    优点 服务之间的调用就像本地调用一样。 服务有监控与治理。 缺点 只能支持JAVA。 不像SpringCloud一...

网友评论

      本文标题:服务治理 - ACL机制,禁止上游调用

      本文链接:https://www.haomeiwen.com/subject/bxcquqtx.html