一、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(); } } } }