为什么要用Dubbo-远程通信背景

技术架构的发展从单体到分布式,是一种顺势而为的架构演进,也是一种被逼无奈的技术变革。架构的复杂度能够体现公司的业务的复杂度,也能从侧面体现公司的产品的发展势头是向上的。

和传统的单体架构相比,分布式多了一个远程服务之间的通信,不管是soa还是微服务,他们本质上都是对于业务服务的提炼和复用。那么远程服务之间的调用才是实现分布式的关键因素。

而在远程通信这个领域,其实有很多的技术,比如Java的RMI、WebService、Hessian、Dubbo、Thrift等RPC框架,现在我们接触得比较多的应该就是RPC框架Dubbo以及应用协议Http。其实每一个技术都是在某一个阶段产生它的价值,随着架构的变化以及需求的变化,技术的解决方案也在变。所以我们才需要不断的学习

我在前面的几次课,讲到了RPC的底层原理,服务与服务之间的调用无非就是跨进程通信而已,我们可以使用socket来实现通信,我们也可以使用nio来实现高性能通信。我们不用这些开源的RPC框架,也可以完成通信的过程。但是为什么要用现成的框架呢?

原因是,如果我们自己去开发一个网络通信,需要考虑到

1. 底层网络通信协议的处理

2. 序列化和反序列化的处理工作

但是这些工作本身应该是通用的,应该是一个中间件服务。为整个公司提供远程通信的服务。而不应该由业务开发人员来自己去实现,所以才有了这样的rpc框架,使得我们调用远程方法时就像调用本地方法那么简单,不需要关心底层的通信逻辑。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Dubbo和Spring Cloud都是用于分布式系统构建的开源框架。 Dubbo是阿里巴巴开发的分布式服务框架,主要用于服务治理和服务调用,提供了服务提供方和服务消费方的实现。 Spring Cloud是基于Spring Boot的分布式系统构建工具,主要用于提供分布式系统常见功能的快速开发。它提供了配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞速、分布式会话和集群状态管理等功能。 总的来说,Dubbo要用于服务治理和服务调用,而Spring Cloud则提供了更多的分布式系统常见功能的实现,是一个更加全面的分布式系统构建工具。 ### 回答2: Dubbo和Spring Cloud都是用于构建分布式系统的开源框架,它们之间存在一些区别。 1. 项目背景Dubbo是阿里巴巴开源的RPC框架,专注于服务间的通信,早于Spring Cloud出现;而Spring Cloud是Spring推出的一套构建微服务架构的解决方案,整合了多个开源项目,包括服务发现、服务注册等。 2. 生态系统:Dubbo的生态系统更加成熟,拥有完善的监控、治理和负载均衡等组件,适合在大规模分布式系统中使用。Spring Cloud整合了多个开源框架,具有更加丰富的功能和更广泛的应用场景。 3. 适用场景:Dubbo适用于传统的企业级系统,对性能和稳定性有较高要求,适合于对服务粒度较小而调用频繁的场景。Spring Cloud适用于构建大规模、复杂性较高的分布式系统,对于微服务架构的构建更加灵活。 4. 技术选择:Dubbo使用更加底层的RPC通信,多采用阻塞I/O来实现高并发,需要自己进行服务注册与发现。Spring Cloud基于RESTful风格的HTTP通信,使用的是非阻塞I/O,集成了自动的服务注册与发现。 5. 社区支持:Dubbo社区相对较小,但阿里巴巴作为主要维护者,提供了稳定和可靠的支持。Spring Cloud作为Spring的一部分,得到了广泛的关注和支持,拥有庞大的社区和活跃的贡献者。 总体来说,Dubbo更适用于大规模和高性能的分布式系统,而Spring Cloud适用于微服务架构和复杂性较高的系统。选择哪种框架取决于具体的项目需求和技术栈的考虑。 ### 回答3: Dubbo和Spring Cloud都是目前非常流行的分布式微服务框架,它们都可以用于构建分布式系统,但在很多方面存在一些区别。 首先,Dubbo是阿里巴巴开源的一个高性能的RPC框架,它提供了服务治理、负载均衡、容灾、安全等多种功能。Dubbo使用更加传统的RPC(远程过程调用)通信协议,可以支持多种协议,如Dubbo协议、RESTful、WebService等。 而Spring Cloud是Spring团队基于Spring Boot开发的用于构建分布式系统的工具集。Spring Cloud集成了多个开源项目,如Netflix的Eureka、Ribbon、Hystrix等,通过这些组件提供了服务注册与发现、负载均衡、断路器、网关等功能。Spring Cloud使用HTTP协议进行服务调用,通信更加简单和灵活。 其次,Dubbo是面向服务的,它将服务提供者和消费者完全解耦,通过注册中心进行服务的注册和发现。Dubbo对服务的粒度更细,可以实现服务之间的高度解耦和复用。 而Spring Cloud是面向组件的,它将应用程序划分为一系列独立的组件,每个组件可以独立进行开发、部署和扩展。Spring Cloud提供了更多的集成和功能组件,如配置中心、分布式追踪、消息总线等,更加适用于构建微服务架构。 最后,Dubbo强调的是性能和效率,并且更加适用于Java生态圈,特别是阿里巴巴的技术栈。Spring Cloud则更加注重开发者友好性和生态整合性,它可以与Spring框架无缝集成,开发和部署更加便捷。 综上所述,Dubbo和Spring Cloud在设计理念和使用方式上存在一些区别,选择适合自己的框架需要根据具体的业务需求、技术栈和团队经验来决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值