一、前言
Spring Cloud原生的Rpc调用方式是Feign,Feign是一个声明式的伪Http客户端,它使得写 Http 客户端变得更简单,但代价是性能大幅度降低。它的底层协议是Http/Ip,协议报文较大,在网络传输中会消耗更多资源。如果在系统QPS达到万级每秒甚至更高,整个系统的性能瓶颈就会出现。这是,另一种RPC框架进入可选项,Dubbo的传输协议默认使用Dubbo协议,较Http协议,数据报文小。除了官方的协议,还支持其他高性能网络协议扩展,其底层通信基于Netty实现,因而传输性能比Feign高。
二、Spring Cloud Alibaba集成Dubbo
由于Dubbo本身也是由阿里巴巴研发并开源出来,系出同门,Spring Cloud Alibaba跟Dubbo体现看了良好的兼容性。
接下来本文将通过生成雪花算法生成Id演示两者如何集成。
接口定义
首先,创建服务者和消费者都需要用到的API接口:
/**
* @author zhaolc
* @version 1.0
* @description TODO
* @createTime 2021年08月20日 14:40:00
*/
public interface IdGenerateApi {
Result getId(String key);
}
相关DTO定义如下:
public class Result implements Serializable {
private long id;
private Status status;
public Result() {
}
public Result(long id, Status status) {
this.id = id;
this.status = status;
}
public long getId() {
return id;
}
public void setId(long id