之前曾简单介绍了timetunnel以及timetunnel在淘宝的应用情况,后续将会有N篇博客详细给大家解读timetunnel的系统设计。timetunnel已经在淘蝌蚪开源,更多的文档和代码信息可以访问http://code.taobao.org/project/view/411/ 。本文主要介绍timetunnel的整体框架。
从上图可以看出,timetunnel大概有四部分组成,client,router,zookeeper,broker。
client是一组访问timetunnel的api,主要有三部分组成:安全认证api,发布api,订阅api。目前client支持java,python,php三种语言
router是访问timetunnel的门户,主要负责路由、安全认证和负载均衡。client访问timetunnel的第一步是向router进行安全认证,如果认证通过,router根据client要发布或者订阅的topic对client进行路由,使client和正确的broker建立连接,路由的过程包含负载均衡策略,router保证让所有的broker平均的接收client访问。
zookeeper是hadoop的开源项目,其主要功能是状态同步,broker和client的状态都存储在这里。
broker是timetunnel的核心,负责消息的存储转发。
