2017-11-07 18 views
0

입니다. 두 개의 laravel 5.2 서버가 실행 중이며 서로 통신하여 서로 통신 할 필요가 있습니다. 내 서버 1에서 내 응용 프로그램에 guip가 두 개의 api를 통신하는 데 걸리는 시간이

, 나는 리그 변압기는 일부 데이터를 반환하는 데 사용하지만 데이터는 내가 변환 기능에 폭식을 사용하여 데이터를 얻을 내 서버 2 에서 자원을 포함해야합니다 :

public function transform(MyModel $model) { 

     $client = new Client(); 
     $result = $client->request('GET', 'localhost:8000/api/companies/'.$model->company_id); 
     $company= $result->getBody()->getContents(); 

     $data = [ 
     'id' => (int) $model->id, 
     'name' => $model->name, 
     'status' => $model->status, 
     ]; 

     $data['company'] = json_decode($company); 
     return $data; 
    } 

때 내가 요청이 나는이 응답을 localhost:4040/api/models/1 이 자원을 얻을 수 있도록 :

"data": { 
    "id": 1, 
    "name": "John Doe", 
    "status": "active", 
    "company": { 
     "data": { 
      "id": 1, 
      "name": "My Company", 
     } 
    } 

나는 목구멍을 사용하여 서버 2에서 (서버 1에 저장) MyModel에 액세스해야 할 때 직면하고있어 문제가된다 I 때문에 필요하다

$result = $client->request('GET', 'localhost:4040/api/models/'.$model->_id); 

및 서버 1의 요구가 회사를 얻을 수 (변압기) 서버 2에 요청을 할 : 서버 1에 요청을 확인합니다. 이렇게하면 클라이언트가 영원히 기다리고 응답을받지 못하게됩니다. 비동기 요청을 사용하여 시도했지만 비어있는 응답을받습니다. 약속을 강제로 이행하면 영원히 중단됩니다.

답변

0

PHP의 통합 웹 서버를 사용하여 로컬로 앱을 실행합니까? 그렇다면 문제입니다.

PHP의 통합 웹 서버는 하나의 요청 만 동시에 처리 할 수 ​​있습니다. 당신은 아파치/nginx를/...

에 모두 서버 1과 2를 실행하는 데 2 ​​

보십시오 서버에 요청을 만들기 위해

및 서버 1 개의 필요에 교착 상태의 종류를 얻을