springboot使用brpc

本文介绍了如何在Java中使用BRPC框架进行服务调用。首先列出了必要的Maven依赖,接着详细阐述了服务端的配置,包括Zookeeper的设置、服务端口和线程数等。然后展示了服务实现,使用了`@RpcExporter`注解。最后,讲解了客户端的配置和调用方式,强调了服务版本的指定,并提供了异步调用的示例。
摘要由CSDN通过智能技术生成

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;
//    }
}
  1. https://github.com/baidu/brpc-java
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot是一个由Pivotal团队开发的框架,它将常用的SpringSpringMVC、data-jpa等框架封装在一起,帮助开发者隐藏框架整合的细节,实现敏捷开发。\[2\]在SpringBoot中,可以使用启动器(starter)来简化配置。启动器是一组依赖的集合,它会默认进行一些配置设置,例如使用spring-boot-starter-web启动器可以快速搭建一个Web应用。\[1\] 在SpringBoot中,可以使用@SpringBootApplication注解来标记启动类。@SpringBootApplication是一个组合注解,包含了@Configuration、@EnableAutoConfiguration和@ComponentScan等注解。@Configuration表示启动类是一个配置类,@EnableAutoConfiguration实现自动装配,@ComponentScan用于扫描注解。\[3\] SpringBoot的配置文件格式可以是properties文件或者yaml文件。在配置文件中,可以设置各种属性和参数,用于配置应用程序的行为。\[3\] 以上是关于SpringBoot的简要介绍和使用方法的说明。如果您有具体的问题或者需要更详细的信息,请提供更多的上下文,我将尽力为您解答。 #### 引用[.reference_title] - *1* [SpringBoot的基本使用](https://blog.csdn.net/weixin_52574640/article/details/126462910)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [SpringBoot使用](https://blog.csdn.net/weixin_45427945/article/details/131138698)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值