Pegasus来源于点评的开源框架pigeon:https://github.com/dianping/pigeongit
Pegasus是一个高性能的分布式服务框架,致力于提供RPC远程服务调用方案,并可做为精简版SOA服务治理的方案。实现基本的RPC,路由,负载均衡,容错,统计报表,服务注册订阅功能。github
其核心模块包括如下几类:sql
随着应用规模的不断扩大,传统的垂直应用架构及应用堆砌已没法知足,急需一套分布式服务架构以及配套的服务治理框架,以便推进总体业务架构的演进。
技术架构的演进之路简述:单一应用优化 => 垂直拆分 => 分布式架构 => 分布式服务治理 => 云服务架构数据库
构建一个稳定,高效,容错,易维护,可监控的服务调用框架,以便推进公司业务系统朝着SOA架构演进,从而使总体业务架构更加清晰,可控和可度量,最终实现业务产品的健康,敏捷发展。
单一应用优化:应用做为单一包部署,以部署多台机器和数据库表结构及sql为优化手段。
垂直拆分:单一应用按照业务模块拆分为多个独立的应用,分散流量并各自根据流量进行横向扩展,此时数据库可能也已按照业务拆分开,减少单库的压力。
分布式架构:应用之间存在复杂频繁交互,此时应抽取核心业务造成业务中心,为其余应用提供服务,具体业务应用应尽可能薄,以便可以快速响应业务需求变动。
分布式服务治理:业务交互愈来愈复杂,人为掌控已愈来愈难,此时应该有治理系统专门负责,包括分析业务依赖,监控业务性能,优雅升降级,容量规划等,以监控和提高服务质量,支撑决策分析。
云服务架构:业务脉络继续无限增加,一套敏捷和高质的完整支撑框架变得愈来愈重要,缩短开发上线的生命周期,下降试错成本(快速试错),资源优化调配,灰度发布等等,都须要一套自动化的,全局的资源调配架构。包括iaas,paas及一整套配套的工具和系统支持,如iaas的管理工具接口,paas的配置中心,自动化发布流程及工具,自动化QA系统等等。至关复杂(公有云更甚),须要投入很大的人力与物力,但若成功构建,效果明显。架构
Pegasus能够应用于内部全部Java系统之间的远程服务调用(或其余语言系统对Java系统的调用),它所提供的高性能﹑智能负载路由﹑容错﹑集群等特性,为打造快速﹑稳定﹑可靠的服务提供了技术保障,也为推动SOA化提供了基础平台支持。负载均衡
Pegasus采用NIO方式传输二进制流数据,并采用长链接方式减小握手,比通常的http短链接协议(如soap)更快,从而提升业务吞吐量。另外经过智能的全局负载均衡策略,可以更加合理的调配资源,从而提升总体性能。框架