Dubbo基础

一,dubbo是什么

dubbo简介

  1. 轻量级,高性能的RPC框架

  2. 并不是要称为一个微服务的全面解决方案

  3. 以java语言出名,目前还包含其他语言

dobbo现状:

  1. 全称是apache dubbo

  2. 微店,网易云音乐,考拉,滴滴,中国电信,人寿都在用

  3. star有30k+个,fork有20k+个

二,RPC和http

RPC介绍

  • RPC–远程过程调用

  • 早期单机时代:IPC(单个电脑运行的进程间相互通信,比如a有画图功能,b只需要去调用a的功能即可,但是只局限在自己的电脑上)

  • 网络时代:把IPC扩展到网络上,这就是RPC(想要调用其他电脑上的功能,通过网络来传输,有了这个之后,多台电脑之间就可以相互通信了)

  • 实现RPC很头疼,于是就有了RPC框架

  • 实现效果:调用其他机器上的程序和调用本地的程序一样方便

常见的RPC框架

  • 阿里的dubbo:性能好

  • 新浪的montan:轻量级,便于理解

  • facebook的thrift:支持的语言多

  • 各个框架都有各自的优缺点

http和RPC对比

  1. 它们就像普通话与方言,http是普通话,rpc是方言,http通用,没有很大的沟通和学习成本,给一个接口地址,调用传参大家都懂,但是它规定了比如请求头怎么写,传输有哪些要求,这样一来效率相对降低。如果是企业内部,使用RPC更加高效,传输和运行效率会更高。

  2. 普通话本质上也是一种方言,只不过它是官方方言,http和rpc在本质上并没有区别,只不过http有些优势被选为官方而已。

    具体区别如下:

    • 传输效率:rpc可以自己定制请求,可以让整体传输内容更少,这样效率更高。http会包含一些无用内容,使用传输效率相对较低

    • 性能消耗,主要在于序列化和反序列化的耗时。RPC可以实现高效二进制传输,http大部分需要用json格式传递信息,需要把json格式转换为其他对象,这样相对来说比较耗时

    • 负载均衡:PRC自带负载均衡策略,http需要借助其他组件,比如eginx

选型建议:

  1. 看看公司内部的技术栈是否统一,如果是java,php,可以选择http,因为学习成本低,通信起来也没用任何障碍。

  2. 技术栈非常统一,都是java工程师,而且希望程序性能好,用户对延迟非常敏感,这个时候可以选择RPC框架。

三,dubbo工作原理

在这里插入图片描述

  1. 服务容器负责启动,加载,运行服务提供者

  2. 服务提供者在启动时,向注册中心注册自己提供的服务

  3. 服务消费者在启动时,向注册中心订阅自己所需的服务

  4. 注册中心返回服务提供者地址列表给消费者

  5. 从提供者地址列表中,选一台提供者进行调用

  6. 提供者和消费者定期发送一次统计数据到监控中心
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值