首页 > 解决方案 > FeignClient spring boot 无法访问节点服务

问题描述

节点服务已注册到 eureka,但是当尝试从另一个微服务作为 FeignClient 访问节点服务时,它会给出 java.net.UnknownHostException

使用 eureka eureka-js-client ( https://www.npmjs.com/package/eureka-js-client )注册节点服务

尤里卡助手.ts

export async function registerWithEureka(appName, PORT){
  const client = new Eureka({
    instance: {
      app: appName,
      hostName,
      ipAddr,
      port: {
        $: PORT,
        '@enabled': 'true',
      },
      vipAddress: appName,
      dataCenterInfo: {
        '@class': 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo',
        name: 'MyOwn',
      },
    },

    eureka: {
      host: eurekaHost,
      port: eurekaPort,
      servicePath: '/eureka/apps/',
      maxRetries: 3,
      requestRetryDelay: 2000,
    },
  });


服务器.ts

async function run() {
  const port = process.env.PORT || 4000;
  // Start up the Node server
  const server = await app();
  server.listen(port, () => {
    console.log(`Node Express server listening on http://localhost:${port}`);
  });

  registerWithEureka('pdf-generator-service-v2', port);

}

FeignClient

@FeignClient(name = PdfGeneratorClientV2.PDF_GENERATION_SERVICE_V2)
public interface PdfGeneratorClientV2 {
    String PDF_GENERATION_SERVICE_V2 = "pdf-generator-service-v2";
    @GetMapping("api/v2/pdf/job-summary")
    byte[] generatePdf(@RequestParam String jobRefId, @RequestParam String orgId, @RequestParam String workflowId);
}

尤里卡控制台

标签: node.jsspring-bootmicroservicesnetflix-eurekafeign

解决方案


推荐阅读