Feign客户找不到自定义注册的尤里卡服务

时间:2019-10-27 09:13:07

标签: spring-boot spring-cloud netflix-eureka spring-cloud-feign openfeign

我将简单介绍一下我要实现的目标。我有一个Spring Boot应用程序,它是一个Eureka客户端,并将其注册为数据服务服务。在此应用程序启动之后(ApplicationReadeEvent.class),我还在注册另一个自定义创建的Eureka客户端,看来注册成功了。访问http://localhost:8761时,我可以看到该新注册的服务(工作流服务)。之所以决定在数据服务应用程序中执行此操作,是因为不需要该上下文,而仅在DEV环境中才需要它。后来代替它的是其他团队开发的真正的工作流服务。 这里的问题是,当我尝试通过伪装的客户端访问此服务时,我收到异常:

public function index()
{
  $teachers= DB::table('teachers')
  $qualifs = DB::table('qualifs')->find($teachers);
return view('teachers.index',compact('teachers','qualifs'));
}

enter image description here

这是我的自定义服务注册代码:

public function edit($id)
  {
    $qualifs = DB::table('qualifs')->find($id);
      $teacher = Teacher::find($id);
      return response()->json([
          'status' => 'success',
          'teacher' => $teacher,
          'qualifs'=>$qualifs,
      ]);

  }

这是我的伪装客户代码:

@if(isset($teachers))
  @foreach($teachers->qualifs as $qualif)
      <li>{{ $qualif->qual }}</li>
      @endforeach
@endif

这是我尝试访问其他服务的虚假客户端用法:

com.netflix.client.ClientException: Load balancer does not have available server for client: workflow-service

1 个答案:

答案 0 :(得分:0)

仅通过设置虚拟主机名即可解决此问题。

newInstanceConfig.setVirtualHostname(workflowEngineApplicationName);