• 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扩展机制配置自己的动态代理策略

  • 相关阅读:
    iOS UITextField限制输入长度
    SpringBoot 统一异常处理
    idea+springboot+freemarker热部署
    JAVA 实现链表
    mysql 添加新用户 赋予权限
    Spring MVC 集成 Redis集群
    js获取当前日期时间及其它操作
    MySQL Error Codes MYSQL的错误代码
    js数组 删除元素
    JS table form 序列化提交
  • 原文地址:https://www.cnblogs.com/ren-kai/p/12814867.html
Copyright © 2020-2023  润新知