TSeer - 名字服务解决方案


MIT
跨平台
C/C++

软件简介

TSeer 是腾讯高性能 RPC 开发框架 Tars
团队开源的一套服务注册发现容错的解决方案,是对 Tars
名字服务功能的轻量化。在腾讯浏览器、应用宝、管家、手机书城、腾讯文学、广点通等众多业务中广泛采用,目前日均承载百亿级别的请求量。

在服务发现的核心功能之上,TSeer 还支持多种优秀的负载均衡算法,提供可靠的故障容错策略。针对发展迅速的海量服务,还支持就近接入,按 SET
逻辑分组,全量调度三种不同的路由策略。实现了高度智能的调度优化,有效解决了业务跨地区跨机房调用等难题,极大提升服务的可用性和调用质量。

TSeer 拥有 web 管理界面和 API
接入两种方式可供用户根据需求自由选择,通过代理节点和代理服务器机制为需要频繁发布变更的业务提供透明的服务发现功能,学习成本很低,操作也很方便,对于业务维护人员十分友好。

同时 TSeer 轻巧灵便,对业务的侵入性低,非 Tars 服务亦可无缝接入,是微服务框架中优秀的名字服务解决方案。

支持平台

  • Linux

支持语言

  • JAVA

  • C++

  • 更多版本持续开发中…

Tseer 架构

整个 Tseer 的结构分为三部分:Tseerserver、业务客户端(主调)、业务服务端(被调)。

  • Tseerserver

Tseerserver 是整个 Tseer 的枢纽与核心模块。 当新节点上线时,需要先通过 WEB 管理平台在 Tseer
服务集群注册,将其网络位置信息记录在 Tseer 系统中。当需要对节点进行下线或者其他修改时,也需要在 WEB
管理平台就行相关操作。被调节点也会定时上报心跳给 Tseerserver,server 端会屏蔽心跳超时的节点使其无法被调用。

  • 业务客户端

业务客户端是需要调用其他服务的节点,称之为主调,是服务发现功能的使用者。 Tseer 为业务客户端提供了:安装 Agent 与 API 调用两种方式来从
Tseerserver 获得需要调用的服务(被调)的地址来完成调用。

  • 业务服务端

业务服务端是需要被调用的节点,称之为被调,是服务的提供者。 当新节点上线时,被调需要在 Tseerserver
注册。不论同一个被调服务集群有多少个节点,注册时该服务集群都需要注册一个统一的名字。主调在调用逻辑中只需要写明需要调用的服务的名字,Tseer
会根据被调名字来返回被调地址。当被调需要扩容时,只需要把新节点加在该服务对应的名字下面即可。业务人员无需管理被调集群下繁多的服务节点信息,十分方便。