zoukankan      html  css  js  c++  java
  • tars

    tars
    腾讯开源,高性能,微服务,rpc框架,有一套的微服务治理平台
    个人感觉很大程度上还是借鉴zero ice这个开源的框架
    
    1.运营        --透明部署,自动发布,立体化监控
    2.平台        --容错容灾,负载均衡,灰度,管理
    3.通信框架    --RPC,高性能,过载保护
    4.公共组件    --框架和业务使用
    5.统一协议    --可扩展,自动生成, 多平台
    
    上面是tars的分层,对系统的各个模块进行抽象分层,各个层次之间解耦
    
    node(服务节点,会对这台机器的server进行管理,提供启停,发布,监控,还有上传来的心跳)
    {    
        server1
        server2
        servern
    }
    
    公共框架节点
    web管理系统
    registry(路由+管理服务),服务节点的查询
    patch(发布管理)
    config(配置中心)
    log(远程日志)
    stat(调用统计)
    property(业务属性)
    notify(异常信息)
    
    心跳上报流程:server服务运行后,会定期上报心跳到node,node然后把服务心跳信息上报到registry服务,由registry进行统一管理。
    node->registry
    server会上报信息到公共节点
    
    服务架构:  
    server                         client
    
    adminservant|servantimp        servantproxy|callback
    servanthandle                objectproxy|asyncthread
    bindadapter                    adapterproxy
    netthread                    netthread
    
    调用方式:
    1.同步 2.异步 3.单向调用
    
    负载均衡:
            stringtoproxy(*obj)
    client ----------> registry
        |    对象名obj     |
        |                 |    
        |                |
      server---------->node
     client根据对象名拉取到列表后,本地采用负载均衡策略(轮询/hash/权重)选择服务器
     
    容错保护:
    名字服务排除策略:心跳会上报到registry,client拉去列表时,剔除这个服务器
    client主动屏蔽:客户端根据策略来屏蔽,然后还会自动重连,如果成功,再分发请求
    
    过载保护:
    就是网络的请求队列,如果队列对于某个长度则拒绝,如果包从队列中读取出来时超时,超时则不做处理
    
    消息染色:不知道这个干嘛用
    
    IDC分组:
    为了加快服务间的访问速度,减少跨地区、跨机房调用带来的网络资源消耗,减少网络故障带来的影响,框架提供了跨地区、跨机房,就近接入的功能
    拉取服务列表时,只拉取同一机房或者地区的服务器地址
    
    set分组:
    类似moba.frind.60和moba.frind.100,为了方便对业务服务部署管理进行标准化和容量化,框架提供了Set部署能力,set之间没有关系
    
    数据监控:
    
    集中配置
    
    *.tars
    module MTTD
    {
        interface AccountService :对应一个servant即服务器提供者,提供一个多个具体接口
        {
        }
    }
    app.server.servant 这样三层的结构
    
    locator = mfw.mfwregistry.QueryObj@TEMPLATE_REGISTRY_ENDPOINT :这个应该就是registry
    agent-report = mfw.mfwagent.AgentReportObj@tcp -h 127.0.0.1 -p 2002 -t 3600000 应该是node,每台机器一个
    
    日志系统
    debug日志
    按天/小时日志,可以输出到远程日志中心
  • 相关阅读:
    实用的DBHelper帮助类
    无刷新分页技术
    Android回部古剑之ViewFlipper之仙人指路
    Android玉石短剑之GridView之精挑细选
    构建门户之利刃Liferay Portal系统架构
    Android回部古剑之ViewFlipper之翻来覆去
    Android凝碧剑之CalendarView之万年历
    自己动手写Web容器之TomJetty之四:静态页面起步
    Android白虹剑之EditView之非法输入
    AssetBundle压缩/内部结构/下载和加载
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/13822226.html
Copyright © 2011-2022 走看看