请描述在 Dubbo 框架中,如何为服务配置访问控制列表(ACL)?
考察说明
考查对 Dubbo 服务访问控制配置的理解,包括配置方式、实现机制和实际应用。
回答思路
- 【回答框架 1】Dubbo 的 ACL 主要用于控制哪些消费者可以调用服务,其配置方式依赖于注册中心或服务治理功能。在 XML 配置中,可通过 service 标签的 filter 或自定义 Filter 实现,但核心是结合注册中心或规则下发。
- 【回答框架 2】一种常见做法是在服务提供方设置 accesslog 或使用 token 机制,但更完整的 ACL 通常通过配置中心或注册中心的规则,如基于消费者 IP 或应用名进行限制。Dubbo 本身没有内置完整的 ACL 模块,需要借助扩展或外部治理平台。
- 【回答框架 3】以 Nacos 或 Zookeeper 为注册中心时,可配置条件路由或黑白名单规则,例如设置服务消费者 IP 列表,仅允许特定 IP 访问。Dubbo 的 Router 机制支持此类规则,且可在运行时动态更新。
- 【关键点 1】Dubbo 未提供开箱即用的完整 ACL,需通过 Filter 或 Router 扩展实现。
- 【关键点 2】基于 IP 或应用名的黑白名单可通过配置中心规则实现。
- 【关键点 3】可结合 token 或签名机制增强访问控制。
- 【易错点 1】依赖错误地认为 Dubbo 具有默认 ACL 配置。
- 【易错点 2】忽略网络级访问控制与业务级访问控制的区别。