在 Java + Dubbo 开发中,调试确实比普通 Web 项目稍微麻烦一点(因为涉及注册中心、RPC 调用、多进程)。下面按使用频率和可操作性给你一个比较系统的方案。
核心思想:跳过注册中心,Consumer 直接连 Provider。
@Reference(url = "dubbo://127.0.0.1:20880")
private UserService userService;
或 XML:
<dubbo:reference interface="com.xxx.UserService"
url="dubbo://127.0.0.1:20880"/>
✅ 优点:
localhostlogging:
level:
com.alibaba.dubbo: DEBUG
org.apache.dubbo: DEBUG
@Reference(mock = "true")
private UserService userService;
或自定义 Mock:
public class UserServiceMock implements UserService {
public User getUser() {
return new User("mock");
}
}
✅ 适合:
Dubbo 自带 QOS(端口 22222)
telnet localhost 22222
常用命令:
ls
invoke com.xxx.UserService.getUser(1)
trace com.xxx.UserService.getUser
✅ 非常适合:
java -jar arthas-boot.jar
常用:
watch com.xxx.UserService * '{params,returnObj}'
trace com.xxx.UserService getUser
✅ 优点:
dubbo.application.logger=slf4j
@ExtendWith(SpringExtension.class)
@DubboComponentScan
public class UserServiceTest {
@Reference
private UserService userService;
@Test
public void test() {
userService.getUser();
}
}
| 问题 | 原因 |
|---|---|
| 调用不到 | 端口/分组/版本不一致 |
| 序列化失败 | 参数未实现 Serializable |
| 本地调不通 | 注册中心脏数据 |
| 超时 | 断点卡太久 |
日常开发:
本地直连 + IDEA 双窗口 + DEBUG
排问题:
Arthas + QOS
联调:
Mock + 日志
如果你愿意,可以告诉我:
我可以直接给你一套可复制的配置模板。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。