微服务项目中 A 项目要调用 B 项目 , A 项目中通过 FeignClient 来调用 B 中的 Controller,从而实现调用他的 service 不是很正常的事情吗,也可以让 B 服务无感知 , 但是今天主程就非让我写在服务提供方(也就是被调方的项目中), 我就觉得离谱 ,我跟他说了我的想法,他用大家都是这么写的把我敷衍了.....
1
kannbala 2020-03-14 10:06:17 +08:00 via iPhone
主程说的是对的
|
2
InkAndBanner OP @kannbala 但是按理说我调用你的服务 我应该让你无感知才对啊 应该我来写吧
|
3
kannbala 2020-03-14 10:20:58 +08:00 via iPhone
正确的姿势是服务提供方提供 Facade 接口,调用方引入 Facade 依赖进行调用
|
4
jeffh 2020-03-14 10:47:41 +08:00 via Android
内部系统调用,服务端是应该提供调用的 api 包,楼上说的没错,主程说的也没错
|
5
renha0 2020-03-14 10:52:01 +08:00
4 楼说的没毛病。再服务池中把各个服务的 api 通过 feignClient 暴露出来,互相调用时都无感知。
|
6
cnbattle 2020-03-14 11:25:35 +08:00 via Android
服务方啊,写一遍所有调用方都可以直接用了,你想让所有调用方全写一遍吗😳
|
7
InkAndBanner OP 又长知识了哈哈哈
|
9
endlessJ219 2020-03-14 15:45:01 +08:00
采用 Facade+引入依赖的方式,感觉不利于最小化微服务间的依赖啊
|
10
ak78 2020-03-14 15:56:57 +08:00
服务提供方单独提供 FeignClient 的 api 包,调用方引用 FeignClient 对应的 jar 包直接使用
|
11
yisheyuanzhang 2020-12-29 11:54:15 +08:00
请教一下楼主最终确定的什么方案, 最近也在纠结这个问题。 看到网上开源项目中两种方式有有(服务方提供 api 模块 or 消费方直接写 feign+fallback )
|
12
yisheyuanzhang 2020-12-29 12:05:03 +08:00
《微服务设计》中,是说服务消费方要自己定义熔断的处理逻辑。 但是感觉这样写的人比较少
![图片]( https://s3.ax1x.com/2020/12/29/rH3I0J.png) |