我将简单介绍一下我要实现的目标。我有一个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'));
}
这是我的自定义服务注册代码:
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
答案 0 :(得分:0)
仅通过设置虚拟主机名即可解决此问题。
newInstanceConfig.setVirtualHostname(workflowEngineApplicationName);