求助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】 里面去了。

求助:请问这什么情况,如何解决?
...全文
2655 点赞 收藏 7
写回复
7 条回复
人生@过客 04月22日
你好:你的这个跨服务调用的问题解决了吗?
回复 点赞
James灬Gosling 04月22日
引用 6 楼 notapp 的回复:
[quote=引用 4 楼 人生@过客 的回复:]你好:你的这个跨服务调用的问题解决了吗?


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

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


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

3.7w+

社区成员

22.5w+

社区内容

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区公告
暂无公告