2017-03-14 9 views

답변

0

서비스 검색을 위해 NameResolver을 구현하십시오.

+0

여기에 예제 코드를 추가 할 수 있습니까 – wthamira

0

아래 코드를 사용하여 인스턴스 검색 클라이언트를 얻었습니다. 역 poxing을 사용하여 모든 서버를 호출하는 데 도움이됩니다.

@Autowired 
private DiscoveryClient discoveryClient; 

및 방법의 도움 아래

우리가 영사 또는 유레카로 등록 변경할 수 있습니다 서비스 이름을

@RequestMapping(method = RequestMethod.GET, value = "/senduser") 
public ResponseEntity<?> sendMessageToAllServices() { 
    user u=null; 
    List<ServiceInstance> server=discoveryClient.getInstances("grpc-server"); 
    for (ServiceInstance serviceInstance : server) { 

     String hostName=serviceInstance.getHost(); 
     int gRpcPort=Integer.parseInt(serviceInstance.getMetadata().get("grpc.port")); 

     ManagedChannel channel=ManagedChannelBuilder.forAddress(hostName,gRpcPort).usePlaintext(true).build(); 
     UserServiceBlockingStub stub=UserServiceGrpc.newBlockingStub(channel); 

     UserDetail user=UserDetail.newBuilder() 
        .setName("Thamira") 
        .setEmail("[email protected]") 
        .setAge(24).setGender(Gender.Male) 
        .setPassword("password").build(); 

     u=stub.createUser(user); 
    } 

    return ResponseEntity.ok("User "+u); 
} 

를 사용하여 모든 서비스를 호출합니다. 이 방법은 두 가지 모두를 지원합니다.

+0

@DimaSan 여기에 코드를 추가합니다. 그 확인은. – wthamira