【问题标题】:Using gRPC communicate Spring Boot application together with consul or Eureka使用 gRPC 与 consul 或 Eureka 一起通信 Spring Boot 应用程序
【发布时间】:2017-08-04 07:49:58
【问题描述】:

我们如何使用 grcp 与 Spring Boot 应用程序通信。以及我们如何使用通用服务发现方法与 grpc 一起使用来获取 Spring Boot 应用程序的端点。

【问题讨论】:

    标签: spring spring-boot consul grpc grpc-java


    【解决方案1】:

    对于服务发现,实现你自己的NameResolver

    【讨论】:

      【解决方案2】:

      我使用下面的代码来获取实例发现客户端。它有助于使用反向攻击调用所有服务器。

      @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("Thamira1005@gmail.com")
                          .setAge(24).setGender(Gender.Male)
                          .setPassword("password").build();
      
              u=stub.createUser(user);
          }
      
          return ResponseEntity.ok("User "+u);
      }
      

      我们可以更改注册为领事或尤里卡。此方法同时支持。

      【讨论】:

        猜你喜欢
        • 2020-03-09
        • 1970-01-01
        • 2015-11-03
        • 1970-01-01
        • 2018-12-23
        • 2016-07-07
        • 2018-01-03
        • 2015-01-28
        • 2017-01-04
        相关资源
        最近更新 更多