Dubbo 与 OpenFegin 都利用于远程调用层面,其中包括协议、负载均衡等都有不同的点,并且在使用上面也有不同的形式。简约记录一下两者的用法。
1. 服务端
dubbo
1.添加dubbo依赖
2.服务类添加@DubboService
@DubboService
public class ProductServiceImpl implements IProductService {}
3.启动类 添加@EnableDubbo
openFegin
1.需撰写controller
@GetMapping("/getUser")
Result getUser() {
return Result.success("成功");
}
2.启动类 添加@EnableDiscoveryClient
2. 消费端
dubbo
1.直接引用 @Reference
@Service
public class LogServiceImpl implements ILogService {
@Reference
IProductService productService;
}
openFegin
1.添加接口 @FeignClient,并接口撰写与服务端相同的controller方法
@Component
@FeignClient(value = "product-service-name")
public interface ProductServiceApi {
@GetMapping("/getUser")
Result getUser() {};
}
区别
区别类型 |
dubbo |
openfeign |
协议 |
Triple 协议 |
声明式的 HTTP |
协议 |
随机、轮询、活跃度、Hash一致性 |
客户端负载均衡 |