com.baidu.brpc.client.RpcClientOptions Java Examples
The following examples show how to use
com.baidu.brpc.client.RpcClientOptions.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Client.java From rpc-benchmark with Apache License 2.0 | 6 votes |
public Client() { RpcClientOptions clientOption = new RpcClientOptions(); clientOption.setProtocolType(com.baidu.brpc.protocol.Options.ProtocolType.PROTOCOL_HTTP_JSON_VALUE); clientOption.setWriteTimeoutMillis(1000); clientOption.setReadTimeoutMillis(1000); clientOption.setMaxTotalConnections(1000); clientOption.setMinIdleConnections(10); clientOption.setLoadBalanceType(LoadBalanceStrategy.LOAD_BALANCE_RANDOM); clientOption.setCompressType(com.baidu.brpc.protocol.Options.CompressType.COMPRESS_TYPE_ZLIB); String serviceUrl = "list://benchmark-server:8002"; this.rpcClient = new RpcClient(serviceUrl, clientOption); this.userService = BrpcProxy.getProxy(rpcClient, UserService.class); }
Example #2
Source File: ServerPushTest.java From brpc-java with Apache License 2.0 | 5 votes |
@Test public void testBasic() { RpcServerOptions rpcServerOptions = RpcOptionsUtils.getRpcServerOptions(); rpcServerOptions.setProtocolType(Options.ProtocolType.PROTOCOL_SERVER_PUSH_VALUE); RpcServer rpcServer = new RpcServer(8000, rpcServerOptions); rpcServer.registerService(new EchoServiceImpl()); rpcServer.start(); RpcClientOptions rpcClientOptions = RpcOptionsUtils.getRpcClientOptions(); rpcClientOptions.setProtocolType(Options.ProtocolType.PROTOCOL_SERVER_PUSH_VALUE); rpcClientOptions.setClientName("c1"); RpcClient rpcClient = new RpcClient("list://127.0.0.1:8000", rpcClientOptions); EchoService echoService = BrpcProxy.getProxy(rpcClient, EchoService.class); rpcClient.registerPushService(new UserPushApiImpl()); Echo.EchoRequest request = Echo.EchoRequest.newBuilder().setMessage("hello").build(); Echo.EchoResponse response = echoService.echo(request); assertEquals("hello", response.getMessage()); ServerSideUserPushApi pushApi = (ServerSideUserPushApi) BrpcPushProxy.getProxy(rpcServer, ServerSideUserPushApi.class); PushData p = new PushData(); p.setData("abc"); PushResult pushResult = pushApi.clientReceive("c1", p); assertEquals("got data:abc", pushResult.getResult()); rpcClient.stop(); rpcServer.shutdown(); }
Example #3
Source File: RpcOptionsUtils.java From brpc-java with Apache License 2.0 | 5 votes |
public static RpcClientOptions getRpcClientOptions() { RpcClientOptions options = new RpcClientOptions(); options.setIoThreadNum(1); options.setWorkThreadNum(1); options.setMinIdleConnections(0); return options; }
Example #4
Source File: LoadBalanceTest.java From brpc-java with Apache License 2.0 | 5 votes |
@Test public void testRandomStrategy() { RpcClientOptions clientOption = RpcOptionsUtils.getRpcClientOptions(); clientOption.setLoadBalanceType(LoadBalanceStrategy.LOAD_BALANCE_RANDOM); RpcClient rpcClient = new RpcClient(serviceUrl, clientOption); final Echo.EchoRequest request = Echo.EchoRequest.newBuilder().setMessage("hello").build(); final EchoService echoService = BrpcProxy.getProxy(rpcClient, EchoService.class); for (int i = 0; i < 10; i++) { echoService.echo(request); } rpcClient.stop(); }
Example #5
Source File: LoadBalanceTest.java From brpc-java with Apache License 2.0 | 5 votes |
@Test public void testRoundRobinStrategy() { RpcClientOptions clientOption = RpcOptionsUtils.getRpcClientOptions(); clientOption.setLoadBalanceType(LoadBalanceStrategy.LOAD_BALANCE_ROUND_ROBIN); RpcClient rpcClient = new RpcClient(serviceUrl, clientOption, null); final Echo.EchoRequest request = Echo.EchoRequest.newBuilder().setMessage("hello").build(); final EchoService echoService = BrpcProxy.getProxy(rpcClient, EchoService.class); for (int i = 0; i < 10; i++) { echoService.echo(request); } rpcClient.stop(); }
Example #6
Source File: LoadBalanceTest.java From brpc-java with Apache License 2.0 | 5 votes |
@Test public void testWeightStrategy() { RpcClientOptions clientOption = RpcOptionsUtils.getRpcClientOptions(); clientOption.setLoadBalanceType(LoadBalanceStrategy.LOAD_BALANCE_WEIGHT); RpcClient rpcClient = new RpcClient(serviceUrl, clientOption, null); final Echo.EchoRequest request = Echo.EchoRequest.newBuilder().setMessage("hello").build(); final EchoService echoService = BrpcProxy.getProxy(rpcClient, EchoService.class); for (int i = 0; i < 10; i++) { echoService.echo(request); } rpcClient.stop(); }
Example #7
Source File: LoadBalanceTest.java From brpc-java with Apache License 2.0 | 5 votes |
@Test public void testFairStrategy() { RpcClientOptions clientOption = RpcOptionsUtils.getRpcClientOptions(); clientOption.setLatencyWindowSizeOfFairLoadBalance(10); clientOption.setLoadBalanceType(LoadBalanceStrategy.LOAD_BALANCE_FAIR); RpcClient rpcClient = new RpcClient(serviceUrl, clientOption, null); final Echo.EchoRequest request = Echo.EchoRequest.newBuilder().setMessage("hello").build(); final EchoService echoService = BrpcProxy.getProxy(rpcClient, EchoService.class); for (int i = 0; i < 20; i++) { echoService.echo(request); } rpcClient.stop(); }
Example #8
Source File: DubboClient.java From brpc-java with Apache License 2.0 | 5 votes |
public static void main(String[] args) { RpcClientOptions options = new RpcClientOptions(); options.setProtocolType(Options.ProtocolType.PROTOCOL_DUBBO_VALUE); options.setReadTimeoutMillis(1000); options.setWriteTimeoutMillis(1000); RpcClient rpcClient = new RpcClient("dubbo://127.0.0.1:2181", options); NamingOptions namingOptions = new NamingOptions(); namingOptions.setGroup(""); namingOptions.setVersion(""); EchoService echoService = RpcClient.getProxy(rpcClient, EchoService.class, namingOptions); for (int i = 0; i < 10; i++) { EchoRequest request = new EchoRequest(); request.setMessage("hello world"); EchoResponse response = echoService.echo(request); System.out.println("receive response:" + GsonUtils.toJson(response)); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } rpcClient.stop(); }
Example #9
Source File: RpcClientTest.java From brpc-java with Apache License 2.0 | 5 votes |
public static void main(String[] args) { RpcClientOptions clientOption = new RpcClientOptions(); clientOption.setProtocolType(ProtocolType.PROTOCOL_NSHEAD_PROTOBUF_VALUE); // clientOption.setProtocolType(ProtocolType.PROTOCOL_NSHEAD_JSON_VALUE); clientOption.setWriteTimeoutMillis(1000); clientOption.setReadTimeoutMillis(5000); clientOption.setLoadBalanceType(LoadBalanceStrategy.LOAD_BALANCE_FAIR); clientOption.setEncoding("gbk"); // 高端口,在开发机上测试 String serviceUrl = "list://localhost:8080"; RpcClient rpcClient = new RpcClient(serviceUrl, clientOption); // sync call EchoService echoService = BrpcProxy.getProxy(rpcClient, EchoService.class); RpcContext.getContext().setLogId(1234L); Echo.EchoRequest request = Echo.EchoRequest.newBuilder().setMessage("hello world").build(); EchoResponse response = echoService.echo(request); System.out.println("--------nshead protobuf sync call response-----------------"); System.out.println(response.getMessage()); rpcClient.stop(); }
Example #10
Source File: SingleConnectionClientTest.java From brpc-java with Apache License 2.0 | 5 votes |
private static RpcClientOptions getRpcClientOptions() { RpcClientOptions clientOption = new RpcClientOptions(); clientOption.setProtocolType(Options.ProtocolType.PROTOCOL_BAIDU_STD_VALUE); clientOption.setWriteTimeoutMillis(1000); clientOption.setReadTimeoutMillis(1000); clientOption.setMaxTotalConnections(1000); clientOption.setMinIdleConnections(10); clientOption.setLoadBalanceType(LoadBalanceStrategy.LOAD_BALANCE_ROUND_ROBIN); clientOption.setCompressType(Options.CompressType.COMPRESS_TYPE_NONE); clientOption.setChannelType(ChannelType.SINGLE_CONNECTION); clientOption.setKeepAliveTime(25); return clientOption; }
Example #11
Source File: StargateDemoClient.java From brpc-java with Apache License 2.0 | 5 votes |
public static void main(String[] args) { RpcClientOptions options = new RpcClientOptions(); // Stargate 协议需要强指定协议类型,不可使用BRPC协议解析器 options.setProtocolType(Options.ProtocolType.PROTOCOL_STARGATE_VALUE); options.setReadTimeoutMillis(1000); options.setWriteTimeoutMillis(1000); RpcClient rpcClient = new RpcClient(StargateDemoConstant.namingUrl, options); NamingOptions namingOptions = new NamingOptions(); namingOptions.setGroup(StargateDemoConstant.group); namingOptions.setVersion(StargateDemoConstant.version); StargateDemoService proxy = BrpcProxy.getProxy(rpcClient, StargateDemoService.class, namingOptions); for (int i = 0, times = 10; i < times; i++) { RpcContext rpcContext = RpcContext.getContext(); rpcContext.reset(); rpcContext.setRequestKvAttachment("key", "value"); StargateDemoReqDto reqDto = new StargateDemoReqDto(); reqDto.setId(1000L); reqDto.setName("test"); StargateDemoResDto call = proxy.call(reqDto); System.out.println(GsonUtils.toJson(call)); if (rpcContext.getResponseKvAttachment() != null) { System.out.println(rpcContext.getResponseKvAttachment().get("resKey")); } System.out.println(); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } rpcClient.stop(); }
Example #12
Source File: CaseController.java From skywalking with Apache License 2.0 | 5 votes |
@RequestMapping("/brpc") @ResponseBody public String brpc() { RpcClientOptions clientOption = new RpcClientOptions(); clientOption.setProtocolType(Options.ProtocolType.PROTOCOL_BAIDU_STD_VALUE); clientOption.setWriteTimeoutMillis(1000); clientOption.setReadTimeoutMillis(5000); clientOption.setMaxTotalConnections(1000); clientOption.setMinIdleConnections(10); clientOption.setLoadBalanceType(LoadBalanceStrategy.LOAD_BALANCE_FAIR); clientOption.setCompressType(Options.CompressType.COMPRESS_TYPE_NONE); String serviceUrl = "list://127.0.0.1:1118"; Echo.EchoRequest request = Echo.EchoRequest.newBuilder() .setMessage("helloooooooooooo") .build(); RpcClient rpcClient = new RpcClient(serviceUrl, clientOption); EchoService echoService = BrpcProxy.getProxy(rpcClient, EchoService.class); try { EchoResponse response = echoService.echo(request); System.out.println(response.getMessage()); } catch (RpcException ex) { } rpcClient.stop(); return SUCCESS; }
Example #13
Source File: GlobalThreadPoolSharingTest.java From brpc-java with Apache License 2.0 | 4 votes |
@Test @Ignore public void testShareGlobalThreadPool() { RpcServerOptions rpcServerOptions = RpcOptionsUtils.getRpcServerOptions(); rpcServerOptions.setProtocolType(Options.ProtocolType.PROTOCOL_SERVER_PUSH_VALUE); rpcServerOptions.setGlobalThreadPoolSharing(true); RpcServer rpcServer1 = new RpcServer(8000, rpcServerOptions); rpcServer1.registerService(new EchoServiceImpl()); rpcServer1.start(); RpcServer rpcServer2 = new RpcServer(8001, rpcServerOptions); rpcServer2.registerService(new EchoServiceImpl()); rpcServer2.start(); Assert.assertTrue(rpcServer1.getBossGroup() == rpcServer2.getBossGroup()); Assert.assertTrue(rpcServer1.getWorkerGroup() == rpcServer2.getWorkerGroup()); Assert.assertTrue(rpcServer1.getThreadPool() == rpcServer2.getThreadPool()); RpcClientOptions rpcClientOptions = RpcOptionsUtils.getRpcClientOptions(); rpcClientOptions.setProtocolType(Options.ProtocolType.PROTOCOL_SERVER_PUSH_VALUE); rpcClientOptions.setClientName("c1"); rpcClientOptions.setGlobalThreadPoolSharing(true); RpcClient rpcClient1 = new RpcClient("list://127.0.0.1:8000", rpcClientOptions); EchoService echoService1 = BrpcProxy.getProxy(rpcClient1, EchoService.class); rpcClient1.registerPushService(new UserPushApiImpl()); RpcClient rpcClient2 = new RpcClient("list://127.0.0.1:8001", rpcClientOptions); EchoService echoService2 = BrpcProxy.getProxy(rpcClient2, EchoService.class); rpcClient2.registerPushService(new UserPushApiImpl()); RpcClient rpcClient3 = new RpcClient("list://127.0.0.1:8001", rpcClientOptions); EchoService echoService3 = BrpcProxy.getProxy(rpcClient3, EchoService.class); rpcClient3.registerPushService(new UserPushApiImpl()); BrpcThreadPoolManager threadPoolManager = BrpcThreadPoolManager.getInstance(); Assert.assertTrue(threadPoolManager.getIoThreadPoolMap().size() == 1); Assert.assertTrue(threadPoolManager.getWorkThreadPoolMap().size() == 1); Echo.EchoRequest request = Echo.EchoRequest.newBuilder().setMessage("hello").build(); for (int i = 0; i < 1000; i++) { Echo.EchoResponse response = echoService1.echo(request); Echo.EchoResponse response2 = echoService2.echo(request); Echo.EchoResponse response3 = echoService3.echo(request); assertEquals("hello", response.getMessage()); assertEquals("hello", response2.getMessage()); assertEquals("hello", response3.getMessage()); } // test shutndown and stop rpcClient1.stop(); rpcClient2.stop(); rpcClient3.stop(); rpcServer1.shutdown(); rpcServer2.shutdown(); // client Assert.assertTrue(threadPoolManager.getIoThreadPoolMap().size() == 1); Assert.assertTrue(threadPoolManager.getWorkThreadPoolMap().size() == 1); // server EventLoopGroup r1BossGroup = rpcServer1.getBossGroup(); EventLoopGroup r1WorkerGroup = rpcServer1.getWorkerGroup(); ThreadPool r1ThreadPool = rpcServer1.getThreadPool(); Assert.assertFalse(r1BossGroup.isShutdown()); Assert.assertFalse(r1WorkerGroup.isShutdown()); Assert.assertFalse(r1ThreadPool.isStopped()); ShutDownManager.shutdownGlobalThreadPools(); try { Thread.sleep(5 * 1000L); } catch (InterruptedException e) { // do nothing } Assert.assertTrue(threadPoolManager.getIoThreadPoolMap().size() == 0); Assert.assertTrue(threadPoolManager.getWorkThreadPoolMap().size() == 0); Assert.assertTrue(r1BossGroup.isShutdown()); Assert.assertTrue(r1WorkerGroup.isShutdown()); Assert.assertTrue(r1ThreadPool.isStopped()); }
Example #14
Source File: RpcAnnotationResolver.java From brpc-java with Apache License 2.0 | 4 votes |
/** * Creates the rpc proxy factory bean. * * @param rpcProxy the rpc proxy * @param beanFactory the bean factory * @param rpcClientOptions the rpc client options * @param namingServiceUrl naming service url * @return the rpc proxy factory bean */ protected RpcProxyFactoryBean createRpcProxyFactoryBean(RpcProxy rpcProxy, Class serviceInterface, DefaultListableBeanFactory beanFactory, RpcClientOptions rpcClientOptions, String namingServiceUrl) { GenericBeanDefinition beanDef = new GenericBeanDefinition(); beanDef.setBeanClass(RpcProxyFactoryBean.class); MutablePropertyValues values = new MutablePropertyValues(); for (Field field : rpcClientOptions.getClass().getDeclaredFields()) { try { if (field.getType().equals(Logger.class)) { // ignore properties of org.slf4j.Logger class continue; } field.setAccessible(true); values.addPropertyValue(field.getName(), field.get(rpcClientOptions)); } catch (Exception ex) { LOGGER.warn("field not exist:", ex); } } values.addPropertyValue("serviceInterface", serviceInterface); values.addPropertyValue("namingServiceUrl", namingServiceUrl); values.addPropertyValue("group", rpcProxy.group()); values.addPropertyValue("version", rpcProxy.version()); values.addPropertyValue("ignoreFailOfNamingService", rpcProxy.ignoreFailOfNamingService()); values.addPropertyValue("serviceId", rpcProxy.name()); // interceptor String interceptorNames = parsePlaceholder(rpcProxy.interceptorBeanNames()); if (!StringUtils.isBlank(interceptorNames)) { List<Interceptor> customInterceptors = new ArrayList<Interceptor>(); String[] interceptorNameArray = interceptorNames.split(","); for (String interceptorName : interceptorNameArray) { Interceptor interceptor = beanFactory.getBean(interceptorName, Interceptor.class); customInterceptors.add(interceptor); } values.addPropertyValue("interceptors", customInterceptors); } else { values.addPropertyValue("interceptors", interceptors); } beanDef.setPropertyValues(values); String serviceInterfaceBeanName = serviceInterface.getSimpleName(); beanFactory.registerBeanDefinition(serviceInterfaceBeanName, beanDef); return beanFactory.getBean("&" + serviceInterfaceBeanName, RpcProxyFactoryBean.class); }
Example #15
Source File: SpringBootAnnotationResolver.java From brpc-java with Apache License 2.0 | 4 votes |
/** * Creates the rpc proxy factory bean. * * @return the rpc proxy factory bean */ private RpcProxyFactoryBean createRpcProxyFactoryBean(RpcProxy rpcProxy, DefaultListableBeanFactory beanFactory, Class serviceInterface) { GenericBeanDefinition beanDef = new GenericBeanDefinition(); beanDef.setBeanClass(RpcProxyFactoryBean.class); beanDef.setDependsOn("brpcApplicationContextUtils"); MutablePropertyValues values = new MutablePropertyValues(); BrpcConfig brpcConfig = getServiceConfig(beanFactory, serviceInterface); for (Field field : RpcClientOptions.class.getDeclaredFields()) { try { if (field.getType().equals(Logger.class)) { // ignore properties of org.slf4j.Logger class continue; } field.setAccessible(true); values.addPropertyValue(field.getName(), field.get(brpcConfig.getClient())); } catch (Exception ex) { log.warn("field not exist:", ex); } } values.addPropertyValue("serviceInterface", serviceInterface); values.addPropertyValue("serviceId", rpcProxy.name()); if (brpcConfig.getNaming() != null) { values.addPropertyValue("namingServiceUrl", brpcConfig.getNaming().getNamingServiceUrl()); values.addPropertyValue("group", brpcConfig.getNaming().getGroup()); values.addPropertyValue("version", brpcConfig.getNaming().getVersion()); values.addPropertyValue("ignoreFailOfNamingService", brpcConfig.getNaming().isIgnoreFailOfNamingService()); } // interceptor String interceptorNames = brpcConfig.getClient().getInterceptorBeanNames(); if (!StringUtils.isBlank(interceptorNames)) { List<Interceptor> customInterceptors = new ArrayList<>(); String[] interceptorNameArray = interceptorNames.split(","); for (String interceptorBeanName : interceptorNameArray) { Interceptor interceptor = beanFactory.getBean(interceptorBeanName, Interceptor.class); customInterceptors.add(interceptor); } values.addPropertyValue("interceptors", Arrays.asList(customInterceptors)); } beanDef.setPropertyValues(values); String serviceInterfaceBeanName = serviceInterface.getSimpleName(); beanFactory.registerBeanDefinition(serviceInterfaceBeanName, beanDef); return beanFactory.getBean("&" + serviceInterfaceBeanName, RpcProxyFactoryBean.class); }