PRC框架之sofa

一、sofa

蚂蚁金服自主研发的金融级分布式中间件,专注为金融用户提供安全、稳定、可靠、高效、敏捷的基础架构能力,帮助金融用户解决传统集中式架构转型的困难,打造大规模高可用的分布式系统架构,加快金融“互联网+”推进的速度,轻松应对亿级用户的大规模、突发性、高并发量的瞬间冲击。

中间件以 Scalable Open Financial Architecture Boot(简称 SOFABoot)轻量级服务框架为基础,兼容 Spring Boot、Spring Cloud、Dubbo 工程,提供 SOFA 应用中心、微服务、消息队列、数据访问代理、分布式链路跟踪、分布式事务等服务。

https://tech.antfin.com/docs/2/57599

1、引入sofa-rpc

<dependency>
   <groupId>com.alipay.sofa</groupId>
   <artifactId>sofa-rpc-all</artifactId>
   <version>5.3.1</version>
</dependency>

2、注册一个HelloService API服务:

public interface HelloService {

    String sayHello(String name);

}
public class HelloServiceImpl implements HelloService {

    @Override
    public String sayHello(String name) {
        return "hello " + name;
    }

}

3、创建服务端server

public class RpcServer {

    public static void main(String[] args) {
        ServerConfig serverConfig = new ServerConfig().setProtocol("bolt") // 设置一个协议,默认bolt
                .setPort(12200) // 设置一个端口,默认12200
                .setDaemon(false); // 非守护线程

        ProviderConfig<HelloService> providerConfig = new ProviderConfig<HelloService>()
                .setInterfaceId(HelloService.class.getName()) // 指定接口
                .setRef(new HelloServiceImpl()) // 指定实现
                .setServer(serverConfig); // 指定服务端

        providerConfig.export(); // 发布服务
    }
}

4、创建客户端client

public class RpcClient {

    public static void main(String[] args) {

        ConsumerConfig<HelloService> consumerConfig = new ConsumerConfig<HelloService>()
                .setInterfaceId(HelloService.class.getName()) // 指定接口
                .setProtocol("bolt") // 指定协议
                .setDirectUrl("bolt://127.0.0.1:12200") // 指定直连地址
                .setConnectTimeout(10 * 1000);

        HelloService helloService = consumerConfig.refer();

        while (true) {
            try {
                System.out.println(helloService.sayHello("world"));
            } catch (Exception e) {
                e.printStackTrace();
            }

            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_38281963/article/details/86664537
今日推荐