下面列出了怎么用io.grpc.internal.PickFirstLoadBalancerProvider的API类实例代码及写法,或者点击链接到github查看源代码。
@Test
public void stockProviders() {
LoadBalancerRegistry defaultRegistry = LoadBalancerRegistry.getDefaultRegistry();
assertThat(defaultRegistry.providers()).hasSize(3);
LoadBalancerProvider pickFirst = defaultRegistry.getProvider("pick_first");
assertThat(pickFirst).isInstanceOf(PickFirstLoadBalancerProvider.class);
assertThat(pickFirst.getPriority()).isEqualTo(5);
LoadBalancerProvider roundRobin = defaultRegistry.getProvider("round_robin");
assertThat(roundRobin.getClass().getName()).isEqualTo(
"io.grpc.util.SecretRoundRobinLoadBalancerProvider$Provider");
assertThat(roundRobin.getPriority()).isEqualTo(5);
LoadBalancerProvider grpclb = defaultRegistry.getProvider("grpclb");
assertThat(grpclb).isInstanceOf(GrpclbLoadBalancerProvider.class);
assertThat(grpclb.getPriority()).isEqualTo(5);
}
@Test
public void stockProviders() {
LoadBalancerRegistry defaultRegistry = LoadBalancerRegistry.getDefaultRegistry();
assertThat(defaultRegistry.providers()).hasSize(3);
LoadBalancerProvider pickFirst = defaultRegistry.getProvider("pick_first");
assertThat(pickFirst).isInstanceOf(PickFirstLoadBalancerProvider.class);
assertThat(pickFirst.getPriority()).isEqualTo(5);
LoadBalancerProvider roundRobin = defaultRegistry.getProvider("round_robin");
assertThat(roundRobin.getClass().getName()).isEqualTo(
"io.grpc.util.SecretRoundRobinLoadBalancerProvider$Provider");
assertThat(roundRobin.getPriority()).isEqualTo(5);
LoadBalancerProvider grpclb = defaultRegistry.getProvider("grpclb");
assertThat(grpclb).isInstanceOf(GrpclbLoadBalancerProvider.class);
assertThat(grpclb.getPriority()).isEqualTo(5);
}
@Test
public void getClassesViaHardcoded_classesPresent() throws Exception {
List<Class<?>> classes = LoadBalancerRegistry.getHardCodedClasses();
assertThat(classes).hasSize(2);
assertThat(classes.get(0)).isEqualTo(PickFirstLoadBalancerProvider.class);
assertThat(classes.get(1).getName()).isEqualTo(
"io.grpc.util.SecretRoundRobinLoadBalancerProvider$Provider");
}
@BuildStep
public void configureNativeExecutable(CombinedIndexBuildItem combinedIndex,
BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
BuildProducer<ExtensionSslNativeSupportBuildItem> extensionSslNativeSupport) {
// we force the usage of the reflection invoker.
Collection<ClassInfo> messages = combinedIndex.getIndex()
.getAllKnownSubclasses(GrpcDotNames.GENERATED_MESSAGE_V3);
for (ClassInfo message : messages) {
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, true, message.name().toString()));
}
Collection<ClassInfo> builders = combinedIndex.getIndex().getAllKnownSubclasses(GrpcDotNames.MESSAGE_BUILDER);
for (ClassInfo builder : builders) {
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, true, builder.name().toString()));
}
Collection<ClassInfo> lbs = combinedIndex.getIndex().getAllKnownSubclasses(GrpcDotNames.LOAD_BALANCER_PROVIDER);
for (ClassInfo lb : lbs) {
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, false, lb.name().toString()));
}
Collection<ClassInfo> nrs = combinedIndex.getIndex().getAllKnownSubclasses(GrpcDotNames.NAME_RESOLVER_PROVIDER);
for (ClassInfo nr : nrs) {
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, false, nr.name().toString()));
}
// Built-In providers:
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, false, DnsNameResolverProvider.class));
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, false, PickFirstLoadBalancerProvider.class));
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, false,
"io.grpc.util.SecretRoundRobinLoadBalancerProvider$Provider"));
reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, false, NettyChannelProvider.class));
extensionSslNativeSupport.produce(new ExtensionSslNativeSupportBuildItem(GRPC_SERVER));
}
@Test
public void getClassesViaHardcoded_classesPresent() throws Exception {
List<Class<?>> classes = LoadBalancerRegistry.getHardCodedClasses();
assertThat(classes).hasSize(2);
assertThat(classes.get(0)).isEqualTo(PickFirstLoadBalancerProvider.class);
assertThat(classes.get(1).getName()).isEqualTo(
"io.grpc.util.SecretRoundRobinLoadBalancerProvider$Provider");
}