Spring Cloud Feign 未映射到 Eureka 注册的应用程序名称

buh*_*buh 5 java spring spring-boot spring-cloud spring-cloud-feign

我目前有两个服务正在 Eureka 服务器上注册,分别为 RESTAURANT 和 MENU。 尤里卡服务器

这些名称在每个服务的 boostrap.yml 文件中定义为:

spring:
   application:
      name: menu
Run Code Online (Sandbox Code Playgroud)

然而,当涉及到使用Netflix的Feign时,我在注释中输入应用程序名称,如下所示:

@FeignClient("MENU")
public interface MenuClient {

    @RequestMapping(value = "/restaurants/{restaurantId}/menu", method = RequestMethod.GET, consumes = "application/json")
    public Menu getMenu(@PathVariable("restaurantId") final Long restaurantId);
}
Run Code Online (Sandbox Code Playgroud)

这最终导致 URL 没有映射到 eureka 服务,而是映射到http://MENU调试快照

我确认,如果我在注释中对 url 进行硬编码,那么假客户端可以工作,但这会阻止我为我的服务生成随机端口。

我在这里缺少什么?该假冒客户位于 RESTAURANT 服务中。

编辑:

我的餐厅服务主课

@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
@EnableFeignClients
public class RestaurantApplication {

    public static void main(String[] args) {
        SpringApplication.run(RestaurantApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)