美文网首页
java远程调用的反思(Dubbo Vs Spring全家桶)

java远程调用的反思(Dubbo Vs Spring全家桶)

作者: 黄靠谱 | 来源:发表于2019-07-05 10:29 被阅读0次

问题

  1. 为什么要有远程调用?
    因为跨系统的交互变得很多。
  • 跨公司系统的调用:比如调用 支付宝的支付接口,比如调用 税务机关的开票接口。
  • 公司内部系统之间的调用:降低不同业务之间的耦合,拆分出不同的应用,应用之间相互调用。
  1. 如何进行远程调用
  • http接口(web接口)(RestTemplate、Okhttp)
  • Feign
  • RPC调用(Dubbo、Socket编程 )
  • Webservice

Dubbo调用 和传统 http接口调用的区别:

  • Dubbo 类似= RestTemplate+ Zookeeper,所以编程的时候也更简洁一些,而且没有强的耦合关系
  • 引入了注册中心,让服务消费方和 消费提供方 不强耦合
  • 引入了注册中心+ Dubbo自带的负载均衡 ,实现传统http不具备的负载均衡的功能。负载均衡还附带了动态调整 服务端节点数量的功能,动态扩容或者缩容都可以实现。
  • 自带了失败重试的功能
  • 提升了交互的性能,保持了长连接,高性能
  • Dubbo还提供了 监控统计和动态调整(权重和负载均衡算法)的功能
  • Dubbo附带了 白名单功能、结果缓存、同步和异步调用的功能。

Feign概述

Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。
Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。

Feign = RestTemplate + Spring全家桶(Eureka + Ribbon + 熔断 + Zipkin)

  • RestTemplate + Eureka 加持了 注册中心的关环,使得调用变得非常简洁,简洁到只需要指明 application.name + methodName
  • Eukeka +Ribbon 使得负载均衡功能可以实现(默认轮询)
  • 熔断机制,实现失败返回和重试等机制。类似于Dubbo的重试策略
  • Zipkin 链路监控,实现类似Dubbo 监控平台的功能

Dubbo和Feign异同

  1. 共同点:功能上有很多类似的地方,因为都是专注于远程调用这个动作。比如注册中心解耦、负载均衡、失败重试熔断、链路监控。

  2. 区别。实现上:Dubbo除了注册中心,其它的都自己实现了,而Feign大部分功能都是依赖全家桶的组件来实现的。Dubbo小而专一,专注于远程调用。而Spring全家桶而言,远程调用只是一个重要的功能而已。

  • Feign是基于传统Http接口的封装,追求的是简洁,少侵入(因为就服务端而言,在SpringCloud环境下,不需要做任何额外的操作,而Dubbo的服务端需要配置开放的Dubbo接口)
  • Dubbo性能更好(比如支持异步调用、Netty性能更好)
  • Dubbo配置更灵活(比如引入权重,比如动态配置),比如多传输协议(Dubbo、Rmi、http、redis等等)

相关文章

  • java远程调用的反思(Dubbo Vs Spring全家桶)

    问题 为什么要有远程调用?因为跨系统的交互变得很多。 跨公司系统的调用:比如调用 支付宝的支付接口,比如调用 税务...

  • 微服务框架搭建系列: 5.微服务框架选型

    Spring Cloud Netflix全家桶、Spring+Dubbo+Zookeeper散件组合、Spring...

  • spring05-RMI---G05

    spring05-RMI 一. 远程方法调用 RMI Java RMI 指的是远程方法调用 (Remote Met...

  • dubbo服务引用

    dubbo是一款开源的高性能Java RPC框架,可以像调用本地函数一样,调用远程服务。下面对dubbo服务引用部...

  • Spring全家桶——SprinCloud之Feign(Finc

    授权"Java知音"首发 ---Official Accounts Spring全家桶——SprinCloud之F...

  • [Dubbo]分布式服务治理技术 实践

    一、在spring项目中如何使用dubbo远程调用接口 实现远程调用接口,那么至少需要一个客户端,一个服务端程序。...

  • Go组件学习——Web框架Gin

    以前学Java的时候,和Spring全家桶打好关系就行了,从Spring、Spring MVC到SpringBoo...

  • dubbo use

    一. what is dubbo   dubbo是个rpc框架,核心是远程方法调用。围绕着远程方法调用拓展了:服务...

  • Dubbo最详解

    一、Dubbo是什么? Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC(一种远程调用) 分布式服务框架...

  • Dubbo

    一、Dubbo是什么?Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC(一种远程调用) 分布式服务框架(...

网友评论

      本文标题:java远程调用的反思(Dubbo Vs Spring全家桶)

      本文链接:https://www.haomeiwen.com/subject/dblshctx.html