【问题标题】:Connection to a spring boot micro-service from a monolithic spring app从单片 Spring 应用程序连接到 Spring Boot 微服务
【发布时间】:2019-10-15 20:31:52
【问题描述】:

所以我们有一个运行在 localhost:8080 上的 Spring 应用

作为要求的一部分,我们需要此应用程序连接到微服务。微服务有 2 个组件。 一个在 localhost:8888 - X 上运行 另一个在 localhost:7777 - Y

我们在 localhost:8761 上运行 spring 发现服务器

我们如何通过发现服务器从单体spring应用程序连接到微服务X或Y。

我们可以直接连接到localhost:8888或者localhost:7777

但是有没有办法通过发现服务器来做到这一点

【问题讨论】:

  • 确定你已经有一个发现服务,你的微服务在哪里运行?
  • @SimonMartinelli 现在发现服务器正在 localhost:8761 中运行。现在一切都在本地,但在不同的不同端口。
  • Eureka 不是代理
  • 您可以使用 Eureka Discovery 客户端,如下所示:Application application = eurekaClient.getApplication("micro-service-X-name"); InstanceInfo instanceInfo = application.getInstances().get(0); String hostname = instanceInfo.getHostName(); int port = instanceInfo.getPort(); 更多详细信息请通过:baeldung.com/spring-cloud-netflix-eureka

标签: spring-boot spring-mvc microservices spring-cloud


【解决方案1】:

有 3 种方法可以从单体应用程序调用在发现服务中注册的微服务:

  1. 添加并启用发现服务依赖项后,您可以 注入 eurekaClient bean 并获取应用程序 url (“循环”与否)。
  2. 使用@LoadBalanced restTemplate 并将请求发送到 “http://service-name/url”,其中功能区将“服务名称”更改为 自动生成有效网址
  3. 最后最好的选择是依赖feign 客户端。它用 隐式发现服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 2021-09-20
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多