tarsdocs
  • Readme.md
  • CLA
  • LICENSE
  • 基础介绍
    • 简介
    • 基础概念
    • 基础通信协议 Tars
    • 统一通信协议 Tup
    • 开发模式介绍
    • 模板配置
    • 服务市场
    • 服务扩展
    • 框架版本说明
  • 开源版框架介绍
    • 开源版本部署
      • 部署总体介绍
      • Docker环境安装
      • Mysql安装
      • 框架源码部署(Linux/Mac)
      • 框架源码部署(Windows)
      • 框架Docker部署
      • 框架节点部署
      • 业务服务容器化
      • 框架K8SDocker 部署
      • 框架K8STARS 部署
      • 框架K8SFramework 部署(强烈推荐)
      • 框架更新及扩容
      • 调用链升级注意事项
      • TarsWeb-v3.0.3升级说明
    • 开源版管理平台
      • TarsWeb说明
      • web用户体系
      • web管理平台 API
  • 企业版本介绍
    • 企业版说明
    • 框架集群化机制
    • 框架单节点机制
    • 使用二进制包部署
    • 使用容器部署
    • 业务服务一主多备机制
    • 命令行控制终端
    • IP-LIST级联缓存机制
    • 多数据中心管理
    • 多网络支持
    • 第三方服务管理
    • 数据产生和管理机制
    • 密码重置
    • TarsPython介绍
  • 框架关键特性
    • 业务配置
    • 服务监控
    • 无损发布/重启
    • 调用链
    • IDC分组
    • 鉴权功能
  • TarsCPP
    • 编译
    • 快速开发入门
    • 使用指南
    • 开发规范
    • 服务线程说明文档
    • protobuf 协议支持文档
    • 第三方协议支持
    • HTTP1 支持
    • HTTP2 支持
    • TLS 通信支持
    • Push 功能说明
    • PushCallback 功能说明
    • Cookie 支持
    • 队列模式
    • 手动绑定
    • 性能数据
    • 2.x 版本变化
    • 3.x 版本变化
    • 协程版本说明
    • 基础类库说明
    • [案例]
      • 框架快速入门
      • Http 服务示例
  • TarsJava
    • 快速开始
    • 快速开发入门
    • [使用指南]
      • Tars 服务开发与上线
      • HTTP 服务开发与上线
      • 生成接口调用文件
    • [性能测试]
      • tars java 压测代码
  • TarsGo
    • 基本介绍
    • 快速开始
    • 使用指南
    • cmake 管理代码
    • pb2tarsgo
    • 性能数据
    • 使用示例
  • TarsPHP
    • 搭建 php 环境
    • 快速开发入门
    • [快速起步]
      • 搭建 HttpServer
      • 搭建 TimerServer
      • 搭建 TcpServer
      • 搭建 WebSocketServer
      • 弹幕活动实战
    • [框架简介]
      • 简介
      • tars-server
      • tars-client
      • tars-config
      • tars-deploy
      • tars-extension
      • tars-log
      • tars-monitor
      • tars-registry
      • tars-report
      • tars-utils
      • tars2php
    • [高阶应用]
      • PHP 的 Swoole 框架如何接入 Tars
      • 与 thinkphp 结合使用
      • 与 Swoft 结合使用
      • 与 Laravel 结合使用
      • 与 Yii2 结合使用
      • 持续集成方案
    • [其他]
      • 常见问题
      • 如何 Debug
      • changelog
      • 其他外部文档
  • Tars.js
    • 基本介绍
    • 脚手架
    • 快速开发入门
    • @tars/stream
    • @tars/rpc
    • @tars/logs
    • @tars/config
    • @tars/monitor
    • @tars/notify
    • @tars/utils
    • @tars/dyeing
    • @tars/node-agent
    • @tars/winston-tars
    • tars2node
  • K8SFramework
    • [安装和使用说明]
      • 介绍
      • 特性
      • 安装
      • 升级
      • 云原生运维
      • 管理平台
      • 证书
    • [开发环境构建]
      • Dockerfile 说明
      • 服务发布流程说明
      • 制作基础编译镜像
      • 制作业务服务镜像
      • 制作 Helm 包
      • 发布业务镜像到 K8S 集群
      • 服务发布示例
      • 如何调试业务服务
  • 服务扩展
    • 云告警
    • 接口及压测工具
    • 网关服务
    • dcache缓存服务
    • 发送邮件服务
    • 一致性存储服务
    • 一致性存储web管理平台
    • 唯一计数服务
  • 常见问题
    • 安装常见问题
    • Issues
    • Issues-tarscpp
    • Issues-tarsjava
    • Issues-tarsgo
    • Issues-tarsphp
  • 开源合作
    • TarsFramework 项目 Git 合作规范
  • 直播视频
    • B 站 TARS 培训系列课程
  • 相关文章
    • TARS 技术文章
  • 其它资源分享
    • 下载
    • Tars 介绍.pptx
    • TarsPHP 解密.pdf
    • TarsJava 本地调试.pdf
    • 微服务在腾讯的业务实践.pptx
Powered by GitBook
On this page
  • 1. 模板说明
  • 2. 配置格式
  • 2. 服务启动

Was this helpful?

  1. 基础介绍

模板配置

Previous开发模式介绍Next服务市场

Last updated 2 years ago

Was this helpful?

1. 模板说明

  • TARS服务启动的时候, 都需要一个配置文件, 这个配置文件决定了服务绑定哪些端口, 设置TARS RPC调用的相关参数等.

  • 在正式环境中, 这个配置文件是由tarsnode基于框架上的模板文件生成的, 因此你可以通过tarsweb修改模板文件.

  • 服务在部署时会选择自己的模板, 当然你可以通过tarsweb自定义自己的模板, 变更它的参数等.

  • tarsnode在启动业务服务时, 会根据模板生成实际服务启动的配置文件, 这个配置文件在目录: /usr/local/app/tars/tarsnode/data/${app}.${server}/conf/

  • 框架初始化时, 几个重要的框架都有自己的自定义模板,通过你不需要变更它.

  • 模板文件可以继承, 这样方便管理

  • 业务服务可以有私有模板, 私有模板中定义的配置项, 会覆盖模板中的相同的配置项

2. 配置格式

通过tarsweb, 我们可以看到tars.default内容大概如下:

<tars>
	<application>
		enableset=${enableset}
		setdivision=${setdivision}
		<client>
			locator=${locator}
			sync-invoke-timeout=3000
			async-invoke-timeout=5000
			refresh-endpoint-interval=60000
			stat=tars.tarsstat.StatObj
			property=tars.tarsproperty.PropertyObj
			report-interval=60000
			sample-rate=100000
			max-sample-count=50
			asyncthread=${asyncthread}
			modulename=${modulename}
		</client>
		<server>
			app=${app}
			server=${server}
			localip=${localip}
			local=${local}
			basepath=${basepath}
			datapath=${datapath}
			logpath=${logpath}
			logsize=10M
			config=tars.tarsconfig.ConfigObj
			notify=tars.tarsnotify.NotifyObj
			log=tars.tarslog.LogObj
			deactivating-timeout=3000
			logLevel=DEBUG
		</server>
	</application>
</tars>

你可以变更这里面的配置值.

当tarsnode启动业务服务时, 根据模板生成的配置文件格式大概如下, 以tars.tarsconfig举例:

<tars>
  <application>
    # 是否启动用了set
    enableset=n
    # set分组信息
    setdivision=NULL
    <server>
      #服务器上tarsnode的端口, 方便业务服务和tarsnode通信
      node=tars.tarsnode.ServerObj@tcp -h 172.168.1.3 -p 19386 -t 60000
      #服务的app名称
      app=tars
      #服务的server名称
      server=tarsconfig
      #本机地址
      localip=172.168.1.3
      #业务服务开启的管理端口, 给tarsnode使用
      local=tcp -h 172.168.1.3 -p 18197 -t 10000
      #业务服务的基础路径, 框架中有api可以获取到这个路径
      basepath=/usr/local/app/tars/tarsconfig/bin/
      #业务服务的数据目录, 框架中有api可以获取到这个路径, 通常业务服务可以把自己的业务数据写在这个目录下, 
      datapath=/usr/local/app/tars/tarsnode/data/tars.tarsconfig/data/
      #日志路径
      logpath=/usr/local/app/tars/app_log/
      #滚动日志大小
      logsize=10M
      #滚动日志最大个数
      lognum=10
      #滚动日志级别
      logLevel=DEBUG
      #tarsconfig obj
      config=tars.tarsconfig.ConfigObj
      #tarsnotify obj
      notify=tars.tarsnotify.NotifyObj
      #服务停止时, tarsnode最大等待时间
      deactivating-timeout=3000
      #服务启动时, tarsnode最大等待时间
      activating-timeout=10000
      #tarslog obj
      log=tars.tarslog.LogObj
      #以下adapter是tarsnode根据服务在tarsweb上配置的servant来自动生成的
      <tars.tarsconfig.ConfigObjAdapter>
        allow
        endpoint=tcp -h 172.168.1.3 -p 18193 -t 60000
        maxconns=200000
        protocol=tars
        queuecap=100000
        queuetimeout=60000
        servant=tars.tarsconfig.ConfigObj
        threads=10
      </tars.tarsconfig.ConfigObjAdapter>
    </server>
    #rpc客户端通信器的配置项
    <client>
        #tarsregistry地址, 可以有多个
      locator=tars.tarsregistry.QueryObj@tcp -h 172.168.1.3 -p 17890
      #同步调用时间
      sync-invoke-timeout=3000
      #异步调用时间
      async-invoke-timeout=5000
      #刷新主控时间
      refresh-endpoint-interval=60000
      #tarstat obj
      stat=tars.tarsstat.StatObj
      #tarsproperty obj
      property=tars.tarsproperty.PropertyObj
      #上报监控数据间隔
      report-interval=60000
      #异步回调线程个数
      asyncthread=3
      #当前模块名称
      modulename=tars.tarsconfig
    </client>
  </application>
  #其他配置属于业务自定义的配置, 一般没有, 因为业务服务通过业务配置来实现配置, 而不是通过模板来扩展配置
  <db>
    dbhost=172.168.1.3
    dbname=db_tars
    dbuser=tarsAdmin
    dbpass=Tars@2019
    dbport=3306
    charset=utf8
    dbflag=CLIENT_MULTI_STATEMENTS
  </db>
  <propertydb>
    <db1>
      dbhost=172.168.1.3
      dbname=tars_property
      tbname=tars_property_
      dbuser=tarsAdmin
      dbpass=Tars@2019
      dbport=3306
      charset=utf8
    </db1>
  </propertydb>
  <statdb>
    <db1>
      dbhost=172.168.1.3
      dbname=tars_stat
      tbname=tars_stat_
      dbuser=tarsAdmin
      dbpass=Tars@2019
      dbport=3306
      charset=utf8
    </db1>
  </statdb>
</tars>

2. 服务启动

TARS服务启动时, 需要指定以上生成的配置, 例如:

./HelloServer --config=hello.conf

如果对于业务服务, 有自己的配置内容, 你可以放在模板中, 但是通常不建议这样使用, 一般使用业务配置来管理业务服务自己的配置内容,

业务配置请参考文档
模板说明
配置格式
服务启动