TARS 业务统一开发、运营、监控框架, 提升研发效率_第1页
TARS 业务统一开发、运营、监控框架, 提升研发效率_第2页
TARS 业务统一开发、运营、监控框架, 提升研发效率_第3页
TARS 业务统一开发、运营、监控框架, 提升研发效率_第4页
TARS 业务统一开发、运营、监控框架, 提升研发效率_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TARSTARS是什么?开发运营测试服务(tcp/udp, epoll/select)协议客户端调用(同步,异步)容错/容灾部署/发布监控(异常,流量等)集中日志/集中配置服务管理(启停等)接口级测试集成测试TARS 业务统一开发、运营、监控框架, 提升研发效率 解决哪些问题?开发 测试 运营 TARS目标目标容错平台化快速开发高性能易伸缩集中运营(发布和管理等)立体化监控层次清晰 TARS 设计思路运营平台通信框架公共库协议 无线统一协议透明部署 自动发布 集中配置/LOG 调度分析管理 容错 负载均衡 灰度 RPC 高性能 稳定 过载 多语言 框架以及业务使用可扩展 自动生成 多语言打通终

2、端到后台以及后台之前的协议NotifyStatLogPatchRegistry1Registry2RegistryNWebServer1Server2ServerNNode1Server1Server2ServerNNodeN主控节点(热备)运维管理平台异常信息指标统计远程LOG发布平台服务节点业务ServerConfig配置中心5354Property业务信息上报AdminRegistry管理服务registryclientstringToProxy(“PetObj”);petsvrpetsvrtcp/udpnode1node2keep alivereport statuspatchpatc

3、hstatpropnotifyconfiglogadmin commandadmin sync/async 服务主要交互流程webAdminRegistry后台代码结构(C+)base class toolsApplication(conf/log/notify)Communicator(stat/property)registrynodepatchlogconfigstatnotifylibserverjmemlibparsetars2cpptars2javatars2objectctars2node.tars protocollibservant服务框架工具协议公共组件公共服务框架/工具基

4、础类库property TARS协议JceOutputStream os;ti.writeTo(os); JceInputStream is;is.setBuffer(os.getBuffer(), os.getLength();tii.readFrom(is); 序列化反序列化可选字段必选字段tag 代码自动生成客户端服务端tars 文件tars2cpp/usr/local/tars/cpp/tools/tars2cpp Pay.tars 远程调用(远程调用原来如此简单)业务同步调用业务异步调用业务单向调用 开发步骤定义接口文件*.tars脚本创建新Server继承并实现接口类编译成服务接口

5、类registry配部署信息patch 发布到 nodes通过node启动服务config 加业务配置获取接口文件*.tars编译c+/java代理类创建本地代理对象接收同步返回/回调根据对象名称取地址同步或异步调用123服务端开发部署发布客户端开发轻量化(轻重结合,更多的选择)TARS协议(网络/存储)不依赖协议的epoll服务模型服务协议层接口服务独立运行自定义端口协议客户端与服务端结构(多线程模型)ServantProxyAdapterProxyMQ(obj)timeoutNetThreadtcpudpAsyncclient invokeAsynccall back synctcpudp

6、NetThreadAdapter(MQ)Servant HandleAdminServantImpserver appoverload服务模型(C+)NetThreadsbufferBindAdapter(ip:port)EpollServeracceptrbufferHandleThread(1m)conn(index)conn(index)conn(index)容错(服务器挂掉不影响业务)ClientsvrregistrystringToProxy(“PetObj”)返回PetSvr IP:Port列表1. 缺省到每个server(ip:port) 一个连接2. 多个连接竞争消息队列3.

7、一个连接异常后影响最后一个请求4. 定时从registry异步刷新服务列表,实现动态加入/移除Svr5. Registry 部署多台,通过db共享数据,实现热备6. 缺省轮循选择服务节点,支持HASH方式7. 某个连接或者节点失效后,会定时重连(10秒)tcp/udpsvrsvrnode超时切换(降低网络影响)Clientsvrtcp/udpsvrsvr连续超时次数超时比率定时重试1. 客户端内嵌超时切换逻辑2. 连续超时次数大于某值3. 超时比率大于某值4. 定时重试web/wap svr001user根据状态选择路由010tars_dye(“queryInfo”, “xxxxxxxx”)0

8、00UI ServerLogic ServerDB Server对任意一条消息进行染色染色的key值由业务指定后续调用在框架层自动染色染色消息集中到log server染色(察看某个用户所有的信息)dye log server过载服务端接收队列达到某个阀值后拒绝新请求监测每条消息在队列中的时间,已超时的消息不做业务逻辑处理超时时长由客户端控制NetIORecv MessageQSend MessageQHandleThreads如果超时则直接返回记录入队列时间问题定位主要目录框架服务目录: /usr/local/app/tars/xxx业务服务: /usr/local/app/tars/tarsnode/data/服务日志: /usr/local /app/tars/app_log/xxx/xxxserver/*.logWeb日志: /usr/local/app/web/logGITHUB目录结构/TarsCloud/Tars目录说明cppc+源码framework核心框架服务源码, 依赖cppgoGo源码JavaJava源码nodejsNodejs源码phpPhp源码tupTup协议源码(https:/tarscloud.github.io/TarsDocs/kai-fa/tarstup.html)webWeb管理平台dockerDoc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论