服务框架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方式定义服务接口 ,

更方便接入其他语言 ,thrift会有一些制如方法不支持重载、struct不支持继承等

调用模式

• Sync ,同步等待返回调用

• Future ,可实现并行发出多个请求 ,总耗时是最慢的请求的执行时长 ,推荐方式

• Callback ,发出结果不等待返回 ,结果回调 ,完全异步化

• Oneway ,无需返回结果

客户端心跳

• 心跳线程客户端发起 ,定期发送 ,服务端响应 ,连续5次不成功则在本地路由缓存里摘除该服务端节点 ,摘除后下次尝试重连

客户端负载均衡

• 多种负载均衡策略 ,默认是自适应策略 ,客户端会计算发往每个服务端节点的在途请求数 ,新的请求会优先选择在途请求数最小的节点发送

• 预热控制 ,针对服务端某个刚启动的节点 ,客户端按从慢到快的频率 ,将请求逐步发往这个节点 ,防止服务端刚启动的节点大量请求进来导致大量超时

• 也可自定义负载均衡策略

服务限流

• 可以在服务端对某一个服务接口的某一个方法 ,针对不同的调用方应用的请求进行流量QPS限制 ,超出阀值后调用端会收到服务拒绝异常 ,未来会在调用端进行限流

• 服务端会对任意接口的请求所占用的线程数进行控制 ,防止单个接口某个方法用尽线程池所有可用线程

服务隔离

• 服务端默认会监控每个接口的超时情况 ,超时多的接口请求会自动路由到独立的慢线程池处理 ,如果该接口恢复正常 ,则会回到正常共享线程池处理

• 也可以为某些接口方法配置独立的线程池 ,剩余的使用公共池

服务监控分析与告警

• 通过监控系统CAT (已开源 )分析调用链路 ,包括调用量、TP耗时、异常、请求及响应大小、区间耗时明细、QPS等

项目地址:https://github.com/dianping/pigeon

采用的监控系统:Central Application Tracking

项目地址:https://github.com/dianping/cat

监控系统环境搭建:http://www.cnblogs.com/softidea/p/5719331.html

转载于:https://www.cnblogs.com/jefferycao/p/6255105.html

美团大众点评服务框架Pigeon相关推荐

  1. java服务端限流框架,美团大众点评服务框架Pigeon

    服务框架Pigeon架构 ? Pigeon提供jar包接入 ,线上运行在tomcat里 ? Monitor-CAT ,负责调用链路分析.异常监控告警等 ? 配置中心-Lion ,负责一些开关配置读取 ...

  2. 二、美团大众点评CAT监控系列文章---CAT监控的服务端配置

    文章目录 一.服务端下载和配置 二.相关的参考文档 三. 系列文章 一.服务端下载和配置 运行环境及开发工具如下: Jdk8 ,tomcat8,windows10,itellij idea,maven ...

  3. 王兴的“下半场”与美团-大众点评的另一种可能

    O2O市场,棋至中局,业内企业有的式微沉沦,有的关停售卖,也有巨头合并抑或战略结盟.抱团取火,旨在冲出重围,僵局之下,不破不立. 于王兴与他的美团-大众点评而言,也是如此,不破不立.经历了3个季度,美 ...

  4. 基于oracle的餐馆评价系统,美团大众点评优化评价系统 助力餐饮商家做好口碑营销...

    原标题:美团大众点评优化评价系统 助力餐饮商家做好口碑营销 近年来,伴随着"互联网+餐饮"的高歌猛进,评价系统对于消费决策的影响力用越来越凸显. (浏览评价页的用户比浏览poi详情 ...

  5. 美团大众点评 Hybrid 化建设

    上周末,精神哥去参加了好友小青在北京办的T沙龙,探讨移动端热更新相关的话题.Bugly曾为大家介绍过不少腾讯内部的热更新的框架,正好这次看到了美团,去哪儿以及微博同学在应用热更新方面的实践,整理出来发 ...

  6. 三、美团大众点评CAT监控系列文章---Springboot集成CAT并实现邮件告警

    文章目录 一.配置过程 二.相关的参考文档 三.系列文章 一.配置过程 登录自己的cat服务端 默认登录用户名和密码都是 catadmin添加一个监控规则: 如下面的监控规则就是说,如果在一分钟以内访 ...

  7. 美团大众点评网:大数据勾勒“大钱景”

    近日,美团外卖APP通过大数据分析国内不同城市用户的外卖消费习惯,对外公布了各大城市的外卖消费特点.根据美团外卖对"各品类外卖订单量最高的城市"统计发现,除了订餐外,北京市鲜花蛋糕 ...

  8. 美团大众点评合并:背后技术力量的对比回顾

    美团网和大众点评网在10月8日中午联合发布声明,宣布达成战略合作,两者将共同成立一家新公司.两者也在InfoQ及其组织的大会上进行过多次分享,我们将对美团和大众点评使用的技术进行回顾,来看看这两家电商 ...

  9. android 粗暴简单仿美团/大众点评搜索方式,详细标注

    转载请注明出处王亟亟的大牛之路 美团和大众点评的搜索和筛选栏,不能说好看(审美flag),但是满足了我们的搜索还筛选的需求,所以今天就实现了下这样的一个小Demo 项目结构:运行效果就是下图了,就不再 ...

最新文章

  1. 解决mantis不能上传附件问题
  2. h5如何动态获取键盘高度_动态获取键盘高度
  3. mysql test 映射到实体_将MySql视图映射到JPA Entitites,使用哪个唯一...
  4. VisualStudio代码样式-我最喜欢的一种风格
  5. 娱乐的NBA全明星,成熟的科比,回归的切尔西
  6. 【Spring-AOP】自动代理类AnnotationAwareAspectJAutoProxyCreator
  7. 网络管理与维护(5.2)RMON MIB
  8. 读《春秋》有感之十六:楚共王选谥号
  9. android 本地图片模糊,Android端图片模糊的实现原理及方案
  10. android核心版本特性(官网)
  11. 在Android手机或平板电脑上启用开发者模式选项
  12. mysql条件增量同步命令_DataX3 Mysql增量同步ES
  13. STC用PCA测量脉宽_超快激光脉冲测量和诊断使用自相关仪
  14. H3C交换机查询光功率
  15. 服饰美妆新品 | 阿迪达斯可循环跑鞋第三代LOOP系列发布;赫丽尔斯X吃豆人跨界限定系列推出...
  16. 人形机器人——打篮球
  17. Coin Changing
  18. Verilog中generate语法和作用
  19. 银纳米团簇-荧光Ag25团簇以及衍生团簇(直径1-2nm)
  20. Chrome+ProxySwitchySharp+Putty

热门文章

  1. HBuilder开发App教程01-推开前端开发App的大门
  2. AWS Cloud Front(CDN)清理缓存方法
  3. 【项目实战】Python实现用PSO粒子群优化算法对KMeans聚类模型进行优化项目实战
  4. 小波分析在处理无线信号特征数据中的应用
  5. 密码学经典之生日悖论与生日攻击【详解】
  6. 关于APP热更新,一个降本增效的好方法
  7. 得到App的容器及Kubernetes实践
  8. 华为AC6003和AP3010DN-V2的升级之路
  9. python selenium chrome 控制devtools 一些线索
  10. 程序员必须掌握的15种框架,你能知道多少个?