springcloud 服务结构问题

2021-11-27 21:01:59 +08:00
 nananqujava
想请教一个 springcloud 服务拆分的问题,我现在公司里是一个服务分成两个模块,第一个模块里有个叫 service 的工程专门写业务逻辑,还有个叫 api 的工程引用了 service 并且主要提供访问 service 的 feign 接口,第二个模块叫 web 工程,引用了前面的 api 工程。



现在的请求方式我没完全理解为什么要这样,比如 A 服务想要请求 B 服务的数据接口,就得 A 服务 pom 里引用 B 服务的 api 工程,调用 api 工程里的 feign 接口,相当于是 Aweb 调用了自己的引用的 B api 工程的 feign 接口,这个 feign 接口又调用自己同工程的 B service 。

web 这个模块主要是给前端调用的。



我这个 springcloud 初学者的理解是微服务之间不是应该 feign 接口远程调用吗,到底哪种才是最佳实践呢?
1317 次点击
所在节点    问与答
12 条回复
fmumu
2021-11-27 21:50:33 +08:00
提供 feign 接口这部分应该独立出来一个包
cccssss
2021-11-27 22:03:25 +08:00
@fmumu 我理解那个 api 工程就是独立的一个包

web 引用 api ( feign ),api 引用 service 定义路由( RequestMapping)
web 最终在 controller 中实现了 service 中定义的路由
nananqujava
2021-11-27 22:05:14 +08:00
@fmumu api 的 feign 接口部分和 service 是两个工程在一个项目里, api 引用了 service 工程
nananqujava
2021-11-27 22:06:09 +08:00
@cccssss 最终 web 项目是调用了 service 工程里的逻辑
cccssss
2021-11-27 22:11:49 +08:00
@nananqujava 你确定没看反么

我感觉正常应该是一个 service 只是定义 interface,然后一个 api 定义 feign ,web 实现真正的 controller 和 logic
这样才合理啊
passer9527
2021-11-27 22:41:31 +08:00
200 块,为你答疑解惑,告诉你 dau 500 万的产品的的 springcloud 架构是怎么样的。
nananqujava
2021-11-27 23:46:11 +08:00
@passer9527 ???
nananqujava
2021-11-27 23:48:39 +08:00
@cccssss 没看反,确实是我说的这样, 不过 B 项目引用 A 项目的 api 模块调用 feign 还挺方便的
passer9527
2021-11-27 23:59:39 +08:00
rapperx2
2021-11-28 09:27:21 +08:00
@passer9527 众筹 5 块,把价值 200 块的 dau 500 万的产品的的 springcloud 架构是怎么样 公布出来
Philosophy6
2021-11-29 09:38:44 +08:00
蹲一个结果
anyele
2021-11-30 19:30:13 +08:00
@rapperx2 #10 众筹众筹

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/818425

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX