求助SpringCloud微服务间调用出现混乱

notapp 2020-11-12 05:53:01
碰到一个非常奇怪的问题,微服务之间调用后,发生了混乱。具体情形是这样的:

第1步,首先请求,功能A: 【入口】->【服务A】->【服务B】; 返回正常
第2步,然后请求,功能B: 【入口】->【服务A】->【服务C】->【服务B】;返回正常

然后继续:
第3步,再次请求,功能A: 【入口】->【服务A】->【服务B】; 发生错误

检查发现,因为经过第2步后,【服务A】 调 【服务B】 时,并没有正确调【服务B】,而是错误地走到 【服务C】 里面去了。

求助:请问这什么情况,如何解决?
...全文
3104 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38883448 2023-01-12
  • 打赏
  • 举报
回复

我去, 这问题到底是咋回事? 解决了吗? 我也是这个问题, 只要调了某个服务的接口, 就完犊子了, 全乱了...

人生@过客 2021-04-22
  • 打赏
  • 举报
回复
你好:你的这个跨服务调用的问题解决了吗?
戎码一生灬 2021-04-22
  • 打赏
  • 举报
回复
引用 6 楼 notapp 的回复:
[quote=引用 4 楼 人生@过客 的回复:]你好:你的这个跨服务调用的问题解决了吗?


这个是我打印了Fegin实际调用的链接地址,结果很令人伤心,因为是一个巨大的BUG。

相互调用出错时,Fegin打印的调用地址都是错的,就是串线了。本想调的是http://B服务/路由,但因为相互调用后,Feign把几个服务关系就搞混了,然后实际调的根本就不是B服务。[/quote]


你排查一下你A服务的注册名称和B服务的注册名称是不是一样的
notapp 2023-01-13
  • 举报
回复
@戎码一生灬 你好,A、B、C服务的注册名称肯定是不一样的呢
notapp 2021-04-22
  • 打赏
  • 举报
回复
引用 4 楼 人生@过客 的回复:
你好:你的这个跨服务调用的问题解决了吗?
这个是我打印了Fegin实际调用的链接地址,结果很令人伤心,因为是一个巨大的BUG。 相互调用出错时,Fegin打印的调用地址都是错的,就是串线了。本想调的是http://B服务/路由,但因为相互调用后,Feign把几个服务关系就搞混了,然后实际调的根本就不是B服务。
notapp 2021-04-22
  • 打赏
  • 举报
回复
引用 4 楼 人生@过客 的回复:
你好:你的这个跨服务调用的问题解决了吗?
我对服务进行了分层,让上层服务能调用下层服务,下层服务不允许调用上层服务,同层服务不允许相互调用。 向上那面那种相互调用的,就分层一下,比如A是上层,B和C和D是下层,用A去调B然后调C再调D这种,而不要BCD几个相互调。
韩_师兄 2020-11-13
  • 打赏
  • 举报
回复
功能的微服务调用逻辑检查一下啊
KeepSayingNo 2020-11-13
  • 打赏
  • 举报
回复
这个应该是你的调用逻辑问题吧
notapp 2020-11-13
  • 打赏
  • 举报
回复
引用 1 楼 KeepSayingNo 的回复:
这个应该是你的调用逻辑问题吧
你好,谢谢你的回复,是这样的: 服务A是接口服务,对外层应用提供接口 服务B是安全服务,里面有获取验证码,和检查验证码的功能 服务C是用户服务,里面有用户登录的功能 功能A是获取验证码图片,从服务A->调用服务B里面的获取验证码图片。 功能B是用户登录,从服务A->调用服务C里的检查验证功能->验证码正确后调用服务B里面的用户登录功能。 在没有做用户登录前,获取验证码图片的是正确的;只要走一次用户登录,后面再重新获取验证码图片时,【调用服务B里面的获取验证码图片】这个实际走的是去【调用服务C,去服务C里面去获取验证码图片,肯定没有】,就报错了。 请问我这个逻辑是哪里有问题吗?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧