brpc-client调用brpc-server超方便,先粗略地记录一下怎么用,描述后面有时间再添加
1 pom依赖
<dependency>
<groupId>com.baidu</groupId>
<artifactId>brpc-spring-boot-starter</artifactId>
<version>2.5.8</version>
</dependency>
<dependency>
<groupId>com.baidu</groupId>
<artifactId>brpc-java-naming-zookeeper</artifactId>
<version>2.5.8</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.11.0</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<version>3.11.0</version>
</dependency>
2 server端
2.1 prop配置
brpc.global.naming.namingServiceUrl=zookeeper://zk-kfkfk.k.com
brpc.global.naming.group=brpc-server-jiao
brpc.global.naming.version=1.0.0
brpc.global.naming.ignoreFailOfNamingService=false
brpc.global.server.port=10012
brpc.global.server.workThreadNum=1
brpc.global.server.ioThreadNum=1
2.2 实现
import com.baidu.brpc.spring.annotation.RpcExporter;
@RpcExporter
public class EchoServiceImpl implements EchoService {
@Override
public EchoResponse echo(EchoRequest request) {
String message = request.getMessage();
EchoResponse response = new EchoResponse();
response.setMessage("hello " + message);
return response;
}
}
!!!EchoRequest 和 EchoResponse 必须使用注解@ProtobufClass
@ProtobufClass
@Setter
@Getter
public class EchoRequest {
private String message;
}
@ProtobufClass
@Setter
@Getter
public class EchoResponse {
private String message;
}
3 client端
!!!先将server端的jar包通过pom引入
3.1 prop配置
brpc.global.naming.namingServiceUrl=zookeeper://zk-kfkfk.k.com
brpc.global.naming.group=brpc-server-jiao
brpc.global.naming.version=1.0.0
brpc.global.naming.ignoreFailOfNamingService=false
brpc.global.client.workThreadNum=1
brpc.global.client.ioThreadNum=1
brpc.custom.com.xx.xx.service.EchoService.naming.version=1.0.0
3.2 实现
@Service
public class EchoFacadeImpl {
@RpcProxy
private EchoService echoService;
/**
* async service interface proxy will create new RpcClient,
* not used RpcClient of sync interface proxy.
*/
// @RpcProxy
// private AsyncEchoService echoService3;
public void echo() {
System.out.println(echoService.hashCode());
EchoRequest request = new EchoRequest();
request.setMessage("jiao");
EchoResponse echoResponse = echoService.echo(request);
System.out.println(echoResponse.getMessage());
}
// public Future<EchoResponse> echo3(EchoRequest request) {
// System.out.println(echoService3.hashCode());
// Future<EchoResponse> future = echoService3.echo(request, new RpcCallback<EchoResponse>() {
// @Override
// public void success(EchoResponse response) {
// System.out.println(response.getMessage());
// }
//
// @Override
// public void fail(Throwable e) {
// e.printStackTrace();
// }
// });
// return future;
// }
}
- https://github.com/baidu/brpc-java