请问一下 springcloud 组件 feign 的问题

2021-04-21 17:21:30 +08:00
 yeqizhang

只是使用 feign,未使用 eureka 来注册服务。

昨天我刚刚开始学 feign 时,网上找的例子,是把 feign 接口定义在服务提供者这边,然后消费者引入这个接口注入来使用。这种比较类似于 dubbo rpc 接口。

今天我找了个例子又发现服务提供者只暴露 http 接口出来(也就是说只要是 http 接口都可以转成 feign 接口),feign 接口是消费者那边使用时再写的。

请问实际使用中,如果不使用注册中心,interface 是定义在什么地方?

如果使用 eureka,feign interface 该是服务提供者这边对应给出吗?

是不是我应该一开始就去官网找 demo 的...

470 次点击
所在节点    问与答
3 条回复
yeqizhang
2021-04-21 17:44:28 +08:00
破案了,搞清楚 feignclient 的 value name url 就大概明白了
nullllllllllllll
2021-04-22 10:21:33 +08:00
### 服务方
```
@GetMapping("/service/url")
public Object selectObject(@RequestParam String key) {
return service. selectObject(key);
}
```

### 调用方
```
@FeignClient(name = "${127.0.0.1:8080}")
public interface ServiceClient {

@GetMapping("/service /url")
Object selectObject(@RequestParam String key);
}
```
yeqizhang
2021-04-22 11:42:44 +08:00
@nullllllllllllll 我搞清楚了,网上例子有直接类里写服务地址,还有不使用注册中心时自定义服务名,在配置文件中给 ribbon 配服务地址。

现在还没搞清楚的,要不要独立一个模块出来写 feignclient 接口?服务提供者那边的 controller 有没有必要 implements 这个接口?还是直接写你第一段那种不需要 override

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

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

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

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

© 2021 V2EX