我们如何使用 grcp 与 Spring Boot 应用程序通信。以及我们如何使用通用服务发现方法与 grpc 一起使用来获取 Spring Boot 应用程序的端点。
问问题
1356 次
2 回答
0
我使用下面的代码来获取实例发现客户端。它有助于使用反向攻击调用所有服务器。
@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);
}
我们可以更改注册为领事或尤里卡。此方法支持这两者。
于 2017-03-21T09:52:26.757 回答
0
对于服务发现,实现您自己的NameResolver。
于 2017-03-15T21:43:31.470 回答