为澄清这个问题,这里有两个假客户:
@FeignClient(name = "student")
public interface StudentFeign {
@GetMapping(value="/v1/student/{id}")
Student getStudent(@PathVariable("id") String id);
}
@FeignClient(name = "teacher")
public interface TeacherFeign {
@GetMapping(value="/v1/teacher/{id}")
Teacher getTeacher(@PathVariable("id") String id);
}
StudentFeign
和TeacherFeign
的请求是在它们自己的隔离线程池中还是在同一线程池中执行?
这里的问题是,如果它们使用相同的线程池,则一个缓慢/不稳定的伪装客户端可能会消耗所有资源,而会影响另一个资源。
如果他们有自己的线程池,则使用bulkhead pattern
,对我来说似乎更安全。