在入门dubbo时被Trae惨坑😭

gomkiri 发布于 2025-11-05 82 次阅读


AI 摘要

Dubbo入门踩坑记:被AI生成的demo坑惨了!服务消费者死活找不到提供者,最后发现是缺少@EnableDubbo注解。官方文档明明写得很清楚,却轻信了AI的"邪修"配置。教训:在知识盲区更要谨慎,别完全依赖AI。不过也学到了Dubbo+Nacos的运作模式和端口配置技巧。

复现

事情是这样的,我之前一直没用过 Dubbo ,只知道他的主要功能是 RPC,就远程过程调用,今天就让 Trea 给我写了一个 Demo,这是一个基于 SCA 的 demo,即使用 nacos 作为服务注册中心,并期望在后面配合 seata 和 Sentinel 实现事务管理和安全检测。在 Trea 给我生成的 Demo 中,除了 common 和 dubbo-interfaces(主要用来统一存放服务接口),有两个服务account-serviceinventory-service作为服务提供者和一个order-service作服务消费者,在启动服务提供者时看出去好像是没有任何的问题,在 Nacos 也能看到相应的服务,但是到了消费者问题就来了:死活获取不到服务提供者所提供的服务。问遍了很多ai,最后在 claude 那获取一种邪修,在服务提供者的配置文件中添加下面的内容:

dubbo:
  scan:
    base-packages: com.…….demo.inventory.service
YAML

确实解决了问题,然后我开始看官方文档,看到@EnableDubbo注解时我就很奇怪,文档的说这个注解是一定不能少的,但是我并没有在我的 demo 看到这个注解,一开始我还以为是版本相关的问题(这个框架哪来那么多版本,我真服了),但是看到后面开始感觉不对劲了,因为一直没有看到 dubbo.scan这个配置项,就连在“以下是 Dubbo 框架支持的配置组件列表,可以在 Spring Boot 配置文件中指定所需配置”下方都没找到,我开始意识到不对劲,于是我讲@EnableDubbo添加,并将scan给注释掉,果然!!!程序没有一点问题!

复盘

仔细想想真的挺蠢的,而且在官方文档的最开始就提供了一个非常完整的 demo,真不应该直接在我的知识盲区中直接相信AI。

但是也不算是没有一点收获,我知道了 dubbo 配合 Nacos 的大致运行模式,这使我可以更好的理解不同程序之后是如何做到相互调用的;还有就是 dubbo 的端口选择,默认为 22222,选择 -1就自动找一个能用的;还有 dubbo 在本地测试环境启动时,为服务选择的 ip 其实是一个可用的公用地址,而不是 127.0.0.1,本机地址只有在没联网使用,服务器环境的话就直接使用私有地址(这个时候就要注意安全组和端口时候开发了)