• dubbo基本架构


    dubbo十层结构

    1. service 接口层,提供者和消费者实现代码
    2. config 配置层,对服务做相应的配置
    3. proxy 服务代理代理层,透明生成客户端的sub和服务端的skeleton
    4. registry 服务注册层,服务的注册与发现
    5. cluster 集群层,封装多个服务提供者的路由集负载均衡,将多个实例合成一个服务
    6. monitor 监控层, 对服务的调用次数以及调用时间等进行监控
    7. protocol 远程调用层,封装rpc调用
    8. exchange 信息交换层,封装请求响应模式,同步转异步
    9. transport 网络传输层,抽象mina与netty为统一接口
    10. serialize 数据序列化层

    工作流程

    • 1)第一步,provider向注册中心去注册
    • 2)第二步,consumer从注册中心订阅服务,注册中心会通知consumer注册好的服务
    • 3)第三步,consumer调用provider
    • 4)第四步,consumer和provider都异步的通知监控中心

    通信协议

    • 默认为dubbo,单一长连接,NIO异步通信,基于hessian作为序列化协议。适用传输数据量很小(每次请求在100kb以内),但是并发量很高场景
    • rmi协议,走java二进制序列化,多个短连接,适合消费者和提供者数量差不多,适用于文件的传输,一般较少用
    • hessian协议,走hessian序列化协议,多个短连接,适用于提供者数量比消费者数量还多,适用于文件的传输,一般较少用
    • http协议,json序列化
    • webservice,soap文本序列化

    dubbo动态代理策略

    默认使用javassist动态字节码生成,创建代理类。但是可以通过spi扩展机制配置自己的动态代理策略

  • 相关阅读:
    Twitter OA prepare: Rational Sum
    Java: Best Way to read a file
    Summary: gcd最大公约数、lcm最小公倍数算法
    Twitter OA prepare: Flipping a bit
    Twitter OA prepare: Equilibrium index of an array
    echo -e 参数
    openwrt 添加luci选项
    基于TLS的EAP 认证方法
    linux命令 dirname
    freeradius 错误: error:140890C7:SSL routines:ssl3_get_client_certificate:peer did not return a certificate
  • 原文地址:https://www.cnblogs.com/ren-kai/p/12814867.html
Copyright © 2020-2023  润新知