服务框架Pigeon架构
? Pigeon提供jar包接入 ,线上运行在tomcat里
? Monitor-CAT ,负责调用链路分析、异常监控告警等
? 配置中心-Lion ,负责一些开关配置读取
? Governor-服务治理门户
? 一个interface定义为一个服务 ,每个服务有一个唯一标识
服务的注册与发现
? 注册信息包括service name、ip、port、group等
? 服务提供方初始化完成后自动注册 ,也可以通过api或管理端注册
? 服务调用方通过service name去发现服务
Registry (Zookeeper)
/DP/SERVER/com.dianping.iphub.IpService
10.66.1.1:5020,10.66.1.2:5020
服务的注销
? 服务地址通过zookeeper持久节点存储 ,避免临时节点的不稳定
? 关闭tomcat时会调用pigeon脚本去注册中心摘除本机服务地址
? 对于残留的无效地址 ,有独立的心跳服务会检测无效的服务地址进行zookeeper删除
? 客户端对于无效的服务地址 ,内部也有心跳检测机制等来保证
编程方式、序列化
? 基于Hessian序列化 ,通过netty实现自定义TCP协议格式 ,开发成本低 ,通过java interface定义服务接口
? 基于Thrift序列化 ,通过netty实现自定义TCP协议格式 ,性能更高 ,开发成本稍高 ,通过定义IDL或annotation方式定义服务接口 ,
更方便接入其