【Pigeon源码阅读】项目总体结构介绍(一)

Pigeon简介

引入Pigeon官方的简介:

Pigeon是一个分布式服务通信框架(RPC),在美团点评内部广泛使用,是美团点评最基础的底层框架之一。

主要特色

除了支持spring schema等配置方式,也支持代码annotation方式发布服务、引用远程服务,并提供原生api接口的用法。

支持http协议,方便非java应用调用pigeon的服务。

序列化方式除了hessian,还支持thrift等。

提供了服务器单机控制台pigeon-console,包含单机服务测试工具。

创新的客户端路由策略,提供服务预热功能,解决线上流量大的service重启时大量超时的问题。

记录每个请求的对象大小、返回对象大小等监控信息。

服务端可对方法设置单独的线程池进行服务隔离,可配置客户端应用的最大并发数进行限流。

相关地址

源码地址:基于pigeon开源版本2.9.12-SNAPSHOT。

实例代码地址:可以在clone下源码项目后,在源码项目下添加子模块存放实例代码。便于实时调试pigeon源码和直接修改源码或在源码上添加注释理解。

总体结构

  1. pigeon-common:多模块共用类
  2. pigeon-config:pigeon配置管理中心,同时定义了CommonNamespaceHandler,注册解析xml文件中pigeon:xx的自定义命名空间配置
  3. pigeon-console:服务器单机网页控制台相关逻辑,提供相关状态健康检测接口,用于心跳检查,默认注册在4080端口,如可以通过访问ip:4080/services调用特定pigeon服务接口
  4. pigeon-extensions:引入pigeon的一些最新拓展,如果混合注册中心,zk注册中心,http访问服务器,netty tcp访问服务器等
    1. pigeon-registry-composite
    2. pigeon-registry-zookeeper
    3. pigeon-remoting-http
    4. pigeon-remoting-netty
  5. pigeon-monitor:pigeon监控基础组件,可以用于集成其他监控中心组件
  6. pigeon-registry:pigeon注册中心
  7. pigeon-remoting:pigeon远程访问,包括客户端、服务端,编解码等相关逻辑封装

你可能感兴趣的:(分布式,javaweb,Pigeon源码阅读)