2016-04-16 10 views
0

私は、ユーリカ、ユーザーサービス(spring-data-rest user api)とfeign-clientサービスを含んでいます。装うクライアントでspring feign postとdeleteを実装する方法

@FeignClient("useraccount") 
public interface UserFeign { 
    @RequestMapping(method=RequestMethod.POST,value="/users",consumes = "application/json") 
    void createUser(@RequestBody User user); 
    @RequestMapping(method=RequestMethod.DELETE,value="https://stackoverflow.com/users/{id}") 
    void delById (@PathVariable("id") String id); 

私は、ユーザーがサービスAPIを呼び出すことによって装うクライアントで削除して保存するユーザーを実装したいです。だから、私は残りのコントローラ(JSそれらにデータを転送)作成:

@Autowired 
    private UserFeign userFeign; 

//save controller 

@RequestMapping(method = RequestMethod.POST, value = "/property/register") 
    public ResponseEntity<?> createUser(@RequestBody User user) { 
      userSaveFeign.createUser(user); 
      return ResponseEntity.ok(); 
    } 


// and delete controller 

@RequestMapping(method = RequestMethod.DELETE, value = "/property/{id}") 
    public String hello(@PathVariable("id") String id){ 
      userSaveFeign.delById(id); 
     } 
     return "hello"; 
    } 

を、それは常にエラーを満たし:

2016-04-16 20:05:41.162 .DynamicServerListLoadBalancer  DynamicServerListLoadBalancer for client useraccount initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=useraccount,current list of Servers=[192.168.1.101:useraccount:d3fb971b6fe30dc5e9cbfdf0e713cd12],Load balancer stats=Zone stats: {defaultzone=[Zone:defaultzone; Instance count:1; Active connections count: 0; Circuit breaker tripped count: 0; Active connections per server: 0.0;] 
},Server stats: [[Server:192.168.1.101:useraccount:d3fb971b6fe30dc5e9cbfdf0e713cd12; Zone:defaultZone; Total Requests:0; Successive connection failure:0; Total blackout seconds:0; Last connection made:Thu Jan 01 08:00:00 CST 1970; First connection made: Thu Jan 01 08:00:00 CST 1970; Active Connections:0; total failure count in last (1000) msecs:0; average resp time:0.0; 90 percentile resp time:0.0; 95 percentile resp time:0.0; min resp time:0.0; max resp time:0.0; stddev resp time:0.0] 
]}ServerList:org.springf[email protected]19c54b19 
2016-04-16 20:05:41.836[2m[nio-8002-exec-4][36mo.a.c.c.C.[.[.[/].[dispatcherServlet] [0;39m Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.netflix.hystrix.exception.HystrixRuntimeException: createUser timed-out and no fallback available.] with root cause 

java.util.concurrent.TimeoutException: null 
    at com.netflix.hystrix.AbstractCommand$9.call(AbstractCommand.java:600) ~[hystrix-core-1.5.1.jar:1.5.1] 
    at com.netflix.hystrix.AbstractCommand$9.call(AbstractCommand.java:580) ~[hystrix-core-1.5.1.jar:1.5.1] 
    at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$1.onError(OperatorOnErrorResumeNextViaFunction.java:99) ~[rxjava-1.0.14.jar:1.0.14] 
    at rx.internal.operators.OperatorDoOnEach$1.onError(OperatorDoOnEach.java:70) ~[rxjava-1.0.14.jar:1.0.14] 
    at rx.internal.operators.OperatorDoOnEach$1.onError(OperatorDoOnEach.java:70) ~[rxjava-1.0.14.jar:1.0.14] 
    at com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$1.run(AbstractCommand.java:955) ~[hystrix-core-1.5.1.jar:1.5.1] 
    at com.netflix.hystrix.strategy.concurrency.HystrixContextRunnable$1.call(HystrixContextRunnable.java:41) ~[hystrix-core-1.5.1.jar:1.5.1] 
    at com.netflix.hystrix.strategy.concurrency.HystrixContextRunnable$1.call(HystrixContextRunnable.java:37) ~[hystrix-core-1.5.1.jar:1.5.1] 
    at com.netflix.hystrix.strategy.concurrency.HystrixContextRunnable.run(HystrixContextRunnable.java:57) ~[hystrix-core-1.5.1.jar:1.5.1] 
    at com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$2.tick(AbstractCommand.java:972) ~[hystrix-core-1.5.1.jar:1.5.1] 
    at com.netflix.hystrix.util.HystrixTimer$1.run(HystrixTimer.java:99) ~[hystrix-core-1.5.1.jar:1.5.1] 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_40] 
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) ~[na:1.8.0_40] 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_40] 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) ~[na:1.8.0_40] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_40] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_40] 
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40] 

たぶん、上記の店舗や方法を削除するには、問題を抱えているが、誰が私を伝えることができます右かそれとも良い?

答えて

4

Hystrix Commandがタイムアウトしているようです。 Hystrixコマンドを特に持っていないとしたら、HystrixはFeign Clientに無料で含まれている回路ブレーカ技術です。これは何かが完了するまでに長い時間がかかっているルートの原因に対処しません

feign.hystrix.enabled=false 

(そして、あなたはhttp://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html#spring-cloud-feign-hystrixで装う-Hystrixの統合に関する詳細な情報を見つけることができます):あなたはでこれを無効にすることができます。デバッグして何がぶら下がっているかを知る必要があります。その場合、特定の接続タイムアウト例外が発生することが通常予想されますが、Feignクライアントが接続しているが応答していない実際のエンドポイントである可能性があります。

0

これは実際の例外ではありません。タイムアウトの理由を知る必要があります。ログを有効にすると、失敗した理由を確認できます。

import org.springframework.context.annotation.Bean; 

import feign.Logger; 

public class FeignConfiguration { 

    @Bean 
    Logger.Level feignLoggerLevel() { 
     return Logger.Level.FULL; 
    } 
} 

また、サーバーがまったく解決しているかどうかを確認してください。あなたのログは以下のようになります:

DynamicServerListLoadBalancer for client auth-service initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=auth-service,current list of Servers=[192.168.2.243:7277],Load balancer stats=Zone stats: {defaultzone=[Zone:defaultzone; Instance count:1; Active connections count: 0; Circuit breaker tripped count: 0; Active connections per server: 0.0;] 
},Server stats: [[Server:192.168.2.243:8180; Zone:defaultZone; Total Requests:0; Successive connection failure:0; Total blackout seconds:0; Last connection made:Thu Jan 01 06:00:00 BDT 1970; First connection made: Thu Jan 01 06:00:00 BDT 1970; Active Connections:0; total failure count in last (1000) msecs:0; average resp time:0.0; 90 percentile resp time:0.0; 95 percentile resp time:0.0; min resp time:0.0; max resp time:0.0; stddev resp time:0.0] 
]}ServerList:org.springf[email protected]9481a7c 
関連する問題