StaticNameResolverProvider.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package io.milvus.client;
  2. import io.grpc.Attributes;
  3. import io.grpc.EquivalentAddressGroup;
  4. import io.grpc.NameResolver;
  5. import io.grpc.NameResolverProvider;
  6. import java.net.SocketAddress;
  7. import java.net.URI;
  8. import java.util.Arrays;
  9. import java.util.Collections;
  10. import java.util.List;
  11. import java.util.stream.Collectors;
  12. public class StaticNameResolverProvider extends NameResolverProvider {
  13. private final List<SocketAddress> addresses;
  14. public StaticNameResolverProvider(SocketAddress... addresses) {
  15. this.addresses = Arrays.asList(addresses);
  16. }
  17. @Override
  18. public String getDefaultScheme() {
  19. return "static";
  20. }
  21. @Override
  22. protected boolean isAvailable() {
  23. return true;
  24. }
  25. @Override
  26. protected int priority() {
  27. return 0;
  28. }
  29. @Override
  30. public NameResolver newNameResolver(URI targetUri, NameResolver.Args args) {
  31. if (!getDefaultScheme().equals(targetUri.getScheme())) {
  32. return null;
  33. }
  34. return new NameResolver() {
  35. @Override
  36. public String getServiceAuthority() {
  37. return "localhost";
  38. }
  39. @Override
  40. public void start(Listener2 listener) {
  41. List<EquivalentAddressGroup> addrs =
  42. addresses.stream()
  43. .map(addr -> new EquivalentAddressGroup(Collections.singletonList(addr)))
  44. .collect(Collectors.toList());
  45. listener.onResult(
  46. ResolutionResult.newBuilder()
  47. .setAddresses(addrs)
  48. .setAttributes(Attributes.EMPTY)
  49. .build());
  50. }
  51. @Override
  52. public void shutdown() {}
  53. };
  54. }
  55. }