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 开发模式
  • 3 管理系统
  • 4 服务命名
  • 5 服务部署
  • 6 服务发布

Was this helpful?

  1. 基础介绍

开发模式介绍

Previous统一通信协议 TupNext模板配置

Last updated 2 years ago

Was this helpful?

目录

1 介绍

由于TARS支持多语言开发服务, 因此不同开发语言, 开发环境是不一样的, 但是整体开发模式是相似的.

2 开发模式

无论什么语言, 服务的开发模式大体如下:

  • Tars通过自定义的一套语法定义, 服务间的通信协议

  • Tars各语言都提供了一套lib库, 可以快速基于以上通信协议实现服务

  • 各语言服务可以相互调用, 协议是一致的

  • 服务可以打包发布到Tars框架上管理

  • 可以在web平台管理所有服务

当你想调用Tars服务端时, 客户端开发模式如下:

  • 获取到Tars服务器端的tars协议文件

  • 使用对应语言的工具(tars2xxx)将tars协议文件生成对应的客户端代码

  • 结合Tars提供的各语言的库 以及 生成代码, 即可完成服务端的请求和响应

3 管理系统

用户登录成功后,会进入Tars管理系统,如下图

TARS管理系统的菜单树下,有以下功能:

  • 业务管理:包括已部署的服务,以及服务管理、发布管理、服务配置、服务监控、特性监控等;

  • 运维管理:包括服务部署、扩容、模版管理等;

4 服务命名

使用Tars框架的服务,其的服务名称有三个部分:

  • APP:应用名,标识一组服务的一个小集合,在Tars系统中,应用名必须唯一。例如:TestApp;

  • Server:服务名,提供服务的进程名称,Server名字根据业务服务功能命名,一般命名为:XXServer,例如HelloServer;

  • Servant:服务者,提供具体服务的接口或实例。例如:HelloObj;

说明:

  • 一个Server可以包含多个Servant,系统会使用服务的App + Server + Servant,进行组合,来定义服务在系统中的路由名称,称为路由Obj,其名称在整个系统中必须是唯一的,以便在对外服务时,能唯一标识自身。

  • 每个Servant对应一个独立的端口, 对外服务.

  • 因此在定义APP时,需要注意APP的唯一性。

例如:TestApp.HelloServer.HelloObj。

5 服务部署

服务部署,其实也可以在服务开发后进行,不过建议先做。

点击主菜单“运维管理”->“服务部署”,如下图:

  • “应用”指你的服务程序归在哪一个应用下,例如:“TestApp”。

  • “服务名称”指你的服务程序的标识名字,例如:“HelloServer”。

  • “服务类型”指你的服务程序用什么语言写的,例如:java的选择“tars_java”。

  • “模版” 指你的服务程序在启动时,设置的配置文件的名称

  • “节点” 指服务部署的机器IP。

  • “Set分组” 指设置服务的Set分组信息,Set信息包括3部分:Set名、Set地区、Set组名。

  • “OBJ名称” 指Servant的名称。

  • “OBJ绑定IP” 指服务绑定的机器IP,一般与节点一样。

  • “端口” 指OBJ要绑定的端口。

  • “端口类型” 指使用TCP还是UDP。

  • “协议” 指应用层使用的通信协议,Tars框架默认使用tars协议。

  • “线程数” 指业务处理线程的数目。

  • “最大连接数” 指支持的最大连接数。

  • “队列最大长度” 指请求接收队列的大小。

  • “队列超时时间” 指请求接收队列的超时时间。

点击“确定”提交,成功后,菜单数下的TestApp应用将出现HelloServer名称,同时将在右侧看到你新增的服务程序信息,如下图:

在管理系统上的部署暂时先到这里,到此为止,只是使你的服务在管理系统上占了个位置,真实程序尚未发布。

6 服务发布

在管理系统的菜单树下,找到你部署的服务,点击进入服务页面。

选择“发布管理”,选中要发布的节点,点击“发布选中节点”,点击“上传发布包”,选择已经编译好的发布包,如下图:

上传好发布包后,点击“选择发布版本”下拉框就会出现你上传的服务程序,选择最上面的一个(最新上传的)。

点击“发布”,服务开始发布,发布成功后,出现下面的界面,如下图:

若失败的话,可能是命名问题,上传问题,以及其他环境问题。欢迎开启Issue进行讨论。

介绍
开发模式
管理系统
服务命名
服务部署
服务发布