zoukankan      html  css  js  c++  java
  • dubbo的代码项目结构

    dubbo 的项目(Project)包含下面模块(Module):

    image

    这些模块的功能描述如下:

    • dubbo-admin  dubbo的管理平台
    • dubbo-demo  包含生产者、消费者、接口定义的dubbo简单Demo。
    • dubbo-simple 这里实现了简单版的监控和注册中心
    • dubbo-test 跟测试有关的一些模块
    • hessian-lite  这里实际不是原生的hessian2序列化,而是阿里修改过的hessian lite,它是dubbo RPC默认启用的序列化方式;

     

    • dubbo-common 公共逻辑模块,包括Util类和通用模型。
    • dubbo-remoting 远程通讯模块,相当于Dubbo协议的实现,如果RPC用RMI协议则不需要使用此包。
    • dubbo-rpc 远程调用模块,抽象各种协议,以及动态代理,只包含一对一的调用,不关心集群的管理。
    • dubbo-cluster 集群模块,将多个服务提供方伪装为一个提供方,包括:负载均衡, 容错,路由等,集群的地址列表可以是静态配置的,也可以是由注册中心下发。
    • dubbo-registry 注册中心模块,基于注册中心下发地址的集群方式,以及对各种注册中心的抽象。
    • dubbo-monitor 监控模块,统计服务调用次数,调用时间的,调用链跟踪的服务。
    • dubbo-config 配置模块,是Dubbo对外的API,用户通过Config使用Dubbo,隐藏Dubbo所有细节。
    • dubbo-container 容器模块,是一个Standlone的容器,以简单的Main加载Spring启动,因为服务通常不需要Tomcat/JBoss等Web容器的特性,没必要用Web容器去加载服务。
    • dubbo-filter  可以用filter实现类似tomcat filter过滤器. 实现1.接口请求时间监控. 2.打印输入输出日志(输出日志有应用自己决定) 配置时出现报错.

     

    核心模块的关系如下图:

    image

     

    整体上按照分层结构进行分包,与分层的不同点在于:

    • container为服务容器,用于部署运行服务,没有在层中画出。
    • protocol层和proxy层都放在rpc模块中,这两层是rpc的核心,在不需要集群时(只有一个提供者),可以只使用这两层完成rpc调用。
    • transport层和exchange层都放在remoting模块中,为rpc调用的通讯基础。
    • serialize层放在common模块中,以便更大程度复用。

     

    上面信息来自: http://dubbo.io/Developer+Guide-zh.htm#DeveloperGuide-zh-%E6%B5%81%E7%A8%8B

  • 相关阅读:
    freemarker 遍历 hashmap 到select option
    三分钟跑起jsblocks
    hibernate_@GeneratedValue
    跑github上的Symfony项目遇到的问题2
    Activiti使用过程_1
    Symfony官方视频教程
    跑github上的Symfony项目遇到的问题
    剧本杀
    随遇而安
    开发者职场心得
  • 原文地址:https://www.cnblogs.com/ghj1976/p/5262375.html
Copyright © 2011-2022 走看看