• Dubbo(一)


      Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。Dubbo框架,是基于容器运行的,容器是Spring

    1. 服务调用超时问题怎么解决?
    消费者调用服务超时会引起服务降级的发生,即从发出调用请求到 获取到提供者的响应结果这个时间超
    出了设定的时限。默认服务调用超时时限为 1 秒。可以 在消费者端与提供者端设置超时时限来解决。
    总的来说还是要设计好业务代码来减少调用时长,设置准确RPC调用的超时时间才能更好的解决这个问
    题。
    2. Dubbo支持哪些序列化方式?
    答:默认使用Hessian序列化,还有Duddo、FastJson、Java自带序列化。
    3.Dubbo和SpringCloud的关系?
    Dubbo是SOA时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断。而
    SpringCloud诞生于微服务架构时代,考虑的是微服务治理的方方面面,另外由于依托了Spirng、
    SpirngBoot的优势之上,两个框架在开始目标就不一致,Dubbo定位服务治理、SpirngCloud是一个生
    态。
    4. Dubbo的架构设计?
    Dubbo框架设计一共划分了10个层:
    服务接口层(Service):该层是与实际业务逻辑相关的,根据服务提供方和服务消费方的业务设计对应
    的接口和实现。
    配置层(Config):对外配置接口,以ServiceConfig和ReferenceConfig为中心。
    服务代理层(Proxy):服务接口透明代理,生成服务的客户端Stub和服务器端Skeleton。
    服务注册层(Registry):封装服务地址的注册与发现,以服务URL为中心。
    集群层(Cluster):封装多个提供者的路由及负载均衡,并桥接注册中心,以Invoker为中心。
    监控层(Monitor):RPC调用次数和调用时间监控。
    远程调用层(Protocol):封将RPC调用,以Invocation和Result为中心,扩展接口为Protocol、
    Invoker和Exporter。
    信息交换层(Exchange):封装请求响应模式,同步转异步,以Request和Response为中心。
    网络传输层(Transport):抽象mina和netty为统一接口,以Message为中心。
    5.Dubbo的默认集群容错方案?
    答:FailoverCluster
    6.Dubbo使用的是什么通信框架?
    默认使用NIO Netty框架
    7.Dubbo的主要应用场景?透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。软
    负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。服务自动注册与发
    现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加
    或删除服务提供者。
    8.Dubbo服务注册与发现的流程?
    流程说明:
    Provider(提供者)绑定指定端口并启动服务·指供者连接注册中心,并发本机IP、端口、应用信息和提供
    服务信息发送至注册中心存储
    Consumer(消费者),连接注册中心,并发送应用信息、所求服务信息至注册中心·注册中心根据消费
    者所求服务信息匹配对应的提供者列表发送至Consumer应用缓存。
    Consumer在发起远程调用时基于缓存的消费者列表择其一发起调用。
    Provider状态变更会实时通知注册中心、在由注册中心实时推送至Consumer
    设计的原因:
    Consumer与Provider解偶,双方都可以横向增减节点数。
    注册中心对本身可做对等集群,可动态增减节点,并且任意一台宕掉后,将自动切换到另一台
    去中心化,双方不直接依懒注册中心,即使注册中心全部宕机短时间内也不会影响服务的调用
    服务提供者无状态,任意一台宕掉后,不影响使用
    10.Dubbo的四大组件
    1、Provider:服务提供者。
    2、Consumer:服务消费者。
    3、Registry:服务注册与发现的中心,提供目录服务,亦称为服务注册中心
    4、Monitor:统计服务的调用次数、调用时间等信息的日志服务,并可以对服务设置权限、 降级处理
    等,称为服务管控中心
    11.Dubbo在安全机制方面是如何解决的
    Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo还提供服务黑
    白名单,来控制服务所允许的调用方。
    12.Dubbo和SpringCloud的区别?
    最大的区别:Dubbo底层是使用Netty这样的NIO框架,是基于TCP协议传输的,配合以Hession序列化
    完成RPC通信。
    而SpringCloud是基于Http协议+Rest接口调用远程过程的通信,相对来说,Http请求会有更大的报
    文,占的带宽也会更多。但是REST相比RPC更为灵活。
    13.Dubbo支持哪些协议,每种协议的应用场景,优缺点?
    dubbo 协议 :
    Dubbo 默认传输协议连接个数:单连接
    连接方式:长连接
    协议:TCP
    传输方式:NIO 异步传输
    适用范围:传入传出参数数据包较小(建议小于 100K),消费者比提供者个数多,单一 消费者无法压
    满提供者,尽量不要用 dubbo 协议传输大文件或超大字符串。
    rmi:采用JDK标准的rmi协议实现,传输参数和返回参数对象需要实现Serializable接口,使用java标准
    序列化机制,使用阻塞式短连接,传输数据包大小混合,消费者和提供者个数差不多,可传文件,传输
    协议TCP。多个短连接,TCP协议传输,同步传输,适用常规的远程服务调用和rmi互操作。在依赖低版
    本的Common-Collections包,java序列化存在安全漏洞;
    webservice:基于WebService的远程调用协议,集成CXF实现,提供和原生WebService的互操作。多
    个短连接,基于HTTP传输,同步传输,适用系统集成和跨语言调用;
    http:基于Http表单提交的远程调用协议,使用Spring的HttpInvoke实现。多个短连接,传输协议
    HTTP,传入参数大小混合,提供者个数多于消费者,需要给应用程序和浏览器JS调用;
    hessian:集成Hessian服务,基于HTTP通讯,采用Servlet暴露服务,Dubbo内嵌Jetty作为服务器时
    默认实现,提供与Hession服务互操作。多个短连接,同步HTTP传输,Hessian序列化,传入参数较
    大,提供者大于消费者,提供者压力较大,可传文件;
    memcache:基于memcached实现的RPC协议
    redis:基于redis实现的RPC协议
    14.Dubbo的核心功能有哪些?
    主要就是如下3个核心功能:
    Remoting:网络通信框架,提供对多种NIO框架抽象封装,包括“同步转异步”和“请求-响应”模式的信息
    交换方式。
    Cluster:服务框架,提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败
    容错,地址路由,动态配置等集群支持。
    Registry:服务注册,基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,
    使服务提供方可以平滑增加或减少机器。
    15.Dubbo的注册中心集群挂掉,发布者和订阅者之间还能通信么?
    可以的,启动dubbo时,消费者会从zookeeper拉取注册的生产者的地址接口等数据,缓存在本地。每
    次调用时,按照本地存储的地址进行调用。
  • 相关阅读:
    Python-05知识-01Python优缺点
    Python-02进阶-06代码优化工具
    Python-02进阶-04多进程多线程
    Python-02进阶-03生成器
    Python-02进阶-02装饰器
    Python-01基础-13功能模块
    Python-01基础-12常用命令
    Python-01基础-11基础知识
    console.dir有很多浏览器,系统的兼容性问题,不要随便用!
    微信支付-签名错误
  • 原文地址:https://www.cnblogs.com/moxihuishou/p/14833202.html
Copyright © 2020-2023  润新知