SlideShare uma empresa Scribd logo
1 de 31
夸父通讯中间件 任卿  淘宝核心系统研发部 1
议程 2 一、夸父系统简介 二、夸父的使用与消息路由 三、夸父应用效果 四、小结
什么是夸父 夸父(KuaFu Communicator),淘宝与阿里巴巴集团研究院联合开发的Linux下分布式消息中间件。 夸父的特点: 基于Agent代理通信 集群通信模型 灵活的路由模式 最简洁的API
我们希望解决的问题 WebServer Apache Server Apache ServerAPP Apache ServerAPP Apache ServerAPP ServerAPP WebServer ServerAPP Apache Apache Server Apache ServerAPP Apache ServerAPP ServerAPP WebServer ServerAPP Apache ServerAPP Apache Apache Apache Server ServerAPP WebServer ServerAPP Apache ServerAPP Apache ServerAPP Apache Apache ServerAPP
夸父应用架构 WebServer Server K F C Apache ServerAPP Apache ServerAPP Apache ServerAPP Apache ServerAPP ServerAPP WebServer Apache Apache Server Apache ServerAPP Apache ServerAPP ServerAPP WebServer ServerAPP Apache ServerAPP Apache Apache Apache Server ServerAPP ServerAPP WebServer Apache ServerAPP Apache ServerAPP Apache ServerAPP Apache K F C K F C K F C CMS K F C K F C K F C
夸父-系统目标 高吞吐量(千兆网卡线速),高QPS(单进程26000以上) 响应时间短,略高于TCP socket通信的开销 消息丢失率低,稳定可靠 屏蔽下层通讯细节,应用系统编程简单 自动负载均衡,高度可扩展性 自动的故障屏蔽和恢复机制
议程 7 一、夸父系统简介 二、夸父的使用与消息路由 三、夸父应用效果 四、小结
夸父-最简洁的API kfc_join:加入通讯组 kfc_send:指定条件向某个通讯组发送消息 kfc_recv:设定条件从某个通讯组接受消息 kfc_leave:离开通讯组
夸父-基本概念 夸父组: 一组server为一组client提供某个服务。 服务端和客户端的进程不需要关心路由、灾难恢复具体实现的细节。 一个夸父进程可以服务多个组。 Domain Socket: 夸父在特定的Unix Domain Socket端口上侦听 用于夸父与应用程序之间通信 将来会用共享内存方案替代
夸父-基本概念 Key client消息的一个伴随值 由client Agent根据client App传递的key值,选择适当的目标server节点 Server可以选择要处理的key range 队列 消息缓存 每个连接保持一个队列 队列满了以后会自动清掉队列里所有的消息
夸父-通信模型
夸父-消息寻址 如何实现消息的代理转发?
消息寻址 应用程序之间通过 “消息传递” 的方式进行通讯 一个客户端的进程可以把一条消息发送到: 一个夸父组 一个夸父组,并且带有key 一个特定的服务端进程 组内的每一台server主机上面的夸父进程。 支持特定的路由策略 服务端的进程只能把消息发送到特定的客户端进程。 通常是服务端进程所接收的最后一条请求对应的客户端进程。
路由策略 所谓“路由”,是指把数据从一个地方传送到另一个地方的行为和动作。 夸父提供的路由策略: Round Robin,在所有的代理进程中轮询调度(默认方式) Multikey,服务端驱动,服务端应用程序指定处理的规则 Routed,客户端驱动,客户端夸父程序确定处理规则
路由策略-Round Robin模式 缺省的路由模式。 支持动态负载均衡,适用于Server机器性能不同的情况 请求被发送到每一个满足下面条件的夸父进程上: 已经连接(加入组) 已经激活,也就是已经有进程附着于它。
路由策略-Round Robin模式 msg{1,5,9} Server-1 msg{2,6,10} Server-2 msg{1…10} Client msg{3,7} Server-3 msg{4,8} Server-4
Round Robin-灾难恢复策略 msg{1,4,7,10} Server-1 msg{2,6,10} Server-2 msg{1…10} Client msg{2,5,8} Server-3 msg{3,6,9} Server-4 所有的消息都被打乱了重新确定目标服务器。
路由策略-Routed模式 服务端进程进入组时,无需声明key。 和key模式类似,客户端发送请求时,需指定一个key 通过固定的路由和统一的灾难恢复机制,达到缓存绑定最大化的目的。
路由策略-Routed模式 msg{1,5,9} Server-1 msg{2,6,10} Server-2 msg{1…10} Client msg{3,7} Server-3 msg{4,8} Server-4
Routed模式-灾难恢复策略 msg{1,2,5,9} Server-1 msg{2,6,10} Server-2 msg{1…10} Client msg{3,6,7} Server-3 msg{4,8,10} Server-4 原来发到server2的请求2,6,10,被分摊到server1, server3, sever4上面。而server1和server3,  server4原来响应的key,仍然保持不变。
路由策略- Multikey模式 服务端进程声明它要接收的key的列表范围。 客户端进程每次发送请求时,提供一个key值(正整数)。 重叠的key列表是允许的。 请求被分发到对应key列表的服务端进程。 提供了灾难自动恢复机制
路由策略- Multikey模式 msg{1,3,5} Server-1@{1-5} msg{2,4} Server-2@{1-5} msg{1…10} Client msg{6,8,10} Server-3@{6-10} msg{7,9} Server-4@{6-10}
Multikey模式-灾难恢复策略 msg{1,2,3,4,5} Server-1@{1-5} msg{2,4} Server-2@{1-5} msg{1…10} Client msg{6,8,10} Server-3@{6-10} msg{7,9} Server-4@{6-10}
夸父 – 状态监控
议程 25 一、夸父系统简介 二、夸父的使用与消息路由 三、夸父应用效果 四、小结
夸父-性能评测
夸父-性能评测
夸父vs TCP
议程 29 一、夸父系统简介 二、夸父的使用与消息路由 三、夸父应用效果 四、小结
小结 夸父目前已经在淘宝多个业务系统中稳定性运行 数百台机器集群的应用规模 后续将考虑开源(code.taobao.org)
   Q & A 谢谢!

Mais conteúdo relacionado

Semelhante a 夸父通讯中间件

Paas研究介绍
Paas研究介绍Paas研究介绍
Paas研究介绍snakebbf
 
腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介areyouok
 
AT&T 的 HTML5 策略和应用现状
AT&T 的 HTML5 策略和应用现状AT&T 的 HTML5 策略和应用现状
AT&T 的 HTML5 策略和应用现状Tom Fan
 
IT架构类构图整理分享 SOA Microservices Cloud Native
IT架构类构图整理分享 SOA Microservices Cloud NativeIT架构类构图整理分享 SOA Microservices Cloud Native
IT架构类构图整理分享 SOA Microservices Cloud NativeStevenShing
 
腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介George Ang
 
Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808OpenCity Community
 
Introduction to ngn sce
Introduction to ngn sceIntroduction to ngn sce
Introduction to ngn scegdems
 
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作liangxiao0315
 
微博Lamp性能优化之路(2014)
微博Lamp性能优化之路(2014)微博Lamp性能优化之路(2014)
微博Lamp性能优化之路(2014)Xinchen Hui
 
Apache+管理..
Apache+管理..Apache+管理..
Apache+管理..fangdeng
 
China PHP Technology Summit 2011 ppt
China PHP Technology Summit 2011 pptChina PHP Technology Summit 2011 ppt
China PHP Technology Summit 2011 pptXinchen Hui
 
Phalcon the fastest php framework 阿土伯
Phalcon   the fastest php framework 阿土伯Phalcon   the fastest php framework 阿土伯
Phalcon the fastest php framework 阿土伯Hash Lin
 
Phalcon phpconftw2012
Phalcon phpconftw2012Phalcon phpconftw2012
Phalcon phpconftw2012Rack Lin
 
IDC大会:新浪SAE架构与设计
IDC大会:新浪SAE架构与设计IDC大会:新浪SAE架构与设计
IDC大会:新浪SAE架构与设计Xi Zeng
 
51 cto下载 51cto信息图:openshift vs cloudfoundry
51 cto下载 51cto信息图:openshift vs cloudfoundry51 cto下载 51cto信息图:openshift vs cloudfoundry
51 cto下载 51cto信息图:openshift vs cloudfoundryHong Cai
 
SAE平台的灵活应用(吕毅、魏世江)
SAE平台的灵活应用(吕毅、魏世江)SAE平台的灵活应用(吕毅、魏世江)
SAE平台的灵活应用(吕毅、魏世江)毅 吕
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维guiyingshenxia
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维colderboy17
 

Semelhante a 夸父通讯中间件 (20)

Paas研究介绍
Paas研究介绍Paas研究介绍
Paas研究介绍
 
腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介
 
Ali-tomcat
Ali-tomcatAli-tomcat
Ali-tomcat
 
AT&T 的 HTML5 策略和应用现状
AT&T 的 HTML5 策略和应用现状AT&T 的 HTML5 策略和应用现状
AT&T 的 HTML5 策略和应用现状
 
IT架构类构图整理分享 SOA Microservices Cloud Native
IT架构类构图整理分享 SOA Microservices Cloud NativeIT架构类构图整理分享 SOA Microservices Cloud Native
IT架构类构图整理分享 SOA Microservices Cloud Native
 
腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介腾讯大讲堂58 拍拍app platform中间件解决方案简介
腾讯大讲堂58 拍拍app platform中间件解决方案简介
 
Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808
 
Introduction to ngn sce
Introduction to ngn sceIntroduction to ngn sce
Introduction to ngn sce
 
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作
 
微博Lamp性能优化之路(2014)
微博Lamp性能优化之路(2014)微博Lamp性能优化之路(2014)
微博Lamp性能优化之路(2014)
 
Apache
ApacheApache
Apache
 
Apache+管理..
Apache+管理..Apache+管理..
Apache+管理..
 
China PHP Technology Summit 2011 ppt
China PHP Technology Summit 2011 pptChina PHP Technology Summit 2011 ppt
China PHP Technology Summit 2011 ppt
 
Phalcon the fastest php framework 阿土伯
Phalcon   the fastest php framework 阿土伯Phalcon   the fastest php framework 阿土伯
Phalcon the fastest php framework 阿土伯
 
Phalcon phpconftw2012
Phalcon phpconftw2012Phalcon phpconftw2012
Phalcon phpconftw2012
 
IDC大会:新浪SAE架构与设计
IDC大会:新浪SAE架构与设计IDC大会:新浪SAE架构与设计
IDC大会:新浪SAE架构与设计
 
51 cto下载 51cto信息图:openshift vs cloudfoundry
51 cto下载 51cto信息图:openshift vs cloudfoundry51 cto下载 51cto信息图:openshift vs cloudfoundry
51 cto下载 51cto信息图:openshift vs cloudfoundry
 
SAE平台的灵活应用(吕毅、魏世江)
SAE平台的灵活应用(吕毅、魏世江)SAE平台的灵活应用(吕毅、魏世江)
SAE平台的灵活应用(吕毅、魏世江)
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
 

Mais de Open Party

Sunshine library introduction
Sunshine library introductionSunshine library introduction
Sunshine library introductionOpen Party
 
食品安全与生态农业──小毛驴市民农园项目介绍
食品安全与生态农业──小毛驴市民农园项目介绍食品安全与生态农业──小毛驴市民农园项目介绍
食品安全与生态农业──小毛驴市民农园项目介绍Open Party
 
网站优化实践
网站优化实践网站优化实践
网站优化实践Open Party
 
Introduction to scientific visualization
Introduction to scientific visualizationIntroduction to scientific visualization
Introduction to scientific visualizationOpen Party
 
西藏10日游
西藏10日游西藏10日游
西藏10日游Open Party
 
Applying BDD in refactoring
Applying BDD in refactoringApplying BDD in refactoring
Applying BDD in refactoringOpen Party
 
移动广告不是网盟
移动广告不是网盟移动广告不是网盟
移动广告不是网盟Open Party
 
Android 开源社区,10年后的再思考
Android 开源社区,10年后的再思考Android 开源社区,10年后的再思考
Android 开源社区,10年后的再思考Open Party
 
企业创业融资之路
企业创业融资之路企业创业融资之路
企业创业融资之路Open Party
 
Java mobile 移动应用开发
Java mobile 移动应用开发Java mobile 移动应用开发
Java mobile 移动应用开发Open Party
 
如何做演讲
如何做演讲如何做演讲
如何做演讲Open Party
 
Positive psychology
Positive psychologyPositive psychology
Positive psychologyOpen Party
 
价值驱动的组织转型-王晓明
价值驱动的组织转型-王晓明价值驱动的组织转型-王晓明
价值驱动的组织转型-王晓明Open Party
 
淘宝广告技术部开发流程和Scrum实践
淘宝广告技术部开发流程和Scrum实践淘宝广告技术部开发流程和Scrum实践
淘宝广告技术部开发流程和Scrum实践Open Party
 
对云计算的理解
对云计算的理解对云计算的理解
对云计算的理解Open Party
 
Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异Open Party
 
Hs java open_party
Hs java open_partyHs java open_party
Hs java open_partyOpen Party
 
Evolutionary db development
Evolutionary db development Evolutionary db development
Evolutionary db development Open Party
 

Mais de Open Party (20)

Sunshine library introduction
Sunshine library introductionSunshine library introduction
Sunshine library introduction
 
食品安全与生态农业──小毛驴市民农园项目介绍
食品安全与生态农业──小毛驴市民农园项目介绍食品安全与生态农业──小毛驴市民农园项目介绍
食品安全与生态农业──小毛驴市民农园项目介绍
 
Cs open-party
Cs open-partyCs open-party
Cs open-party
 
网站优化实践
网站优化实践网站优化实践
网站优化实践
 
Introduction to scientific visualization
Introduction to scientific visualizationIntroduction to scientific visualization
Introduction to scientific visualization
 
西藏10日游
西藏10日游西藏10日游
西藏10日游
 
Applying BDD in refactoring
Applying BDD in refactoringApplying BDD in refactoring
Applying BDD in refactoring
 
移动广告不是网盟
移动广告不是网盟移动广告不是网盟
移动广告不是网盟
 
Android 开源社区,10年后的再思考
Android 开源社区,10年后的再思考Android 开源社区,10年后的再思考
Android 开源社区,10年后的再思考
 
企业创业融资之路
企业创业融资之路企业创业融资之路
企业创业融资之路
 
Java mobile 移动应用开发
Java mobile 移动应用开发Java mobile 移动应用开发
Java mobile 移动应用开发
 
如何做演讲
如何做演讲如何做演讲
如何做演讲
 
爬虫点滴
爬虫点滴爬虫点滴
爬虫点滴
 
Positive psychology
Positive psychologyPositive psychology
Positive psychology
 
价值驱动的组织转型-王晓明
价值驱动的组织转型-王晓明价值驱动的组织转型-王晓明
价值驱动的组织转型-王晓明
 
淘宝广告技术部开发流程和Scrum实践
淘宝广告技术部开发流程和Scrum实践淘宝广告技术部开发流程和Scrum实践
淘宝广告技术部开发流程和Scrum实践
 
对云计算的理解
对云计算的理解对云计算的理解
对云计算的理解
 
Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异
 
Hs java open_party
Hs java open_partyHs java open_party
Hs java open_party
 
Evolutionary db development
Evolutionary db development Evolutionary db development
Evolutionary db development
 

夸父通讯中间件