Использование gRPC связывает приложение Spring Boot вместе с консулом или Eureka

Как мы можем использовать связь grcp с приложением весенней загрузки. И как мы можем использовать общий метод обнаружения служб для использования с grpc, чтобы получить конечную точку весеннего загрузочного приложения.


person wthamira    schedule 14.03.2017    source источник


Ответы (2)


Для обнаружения служб реализуйте собственный NameResolver.

person Eric Anderson    schedule 15.03.2017

Я использовал приведенный ниже код, чтобы получить клиент обнаружения экземпляра. Это помогает обзвонить все серверы, используя реверсивное заражение.

@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);
}

мы можем изменить регистрацию как консул или эврика. Этот метод поддерживает оба из них.

person wthamira    schedule 21.03.2017