1. 程式人生 > >TARS快速入門(NodeJs)

TARS快速入門(NodeJs)

1 前言

一個NodeJs應用程式框架需要關注很多問題,如自動釋出、多機部署、負載均衡、監控報警、日誌的輸出與管理、服務異常重啟等等,而Tars應用程式框架就提供瞭解決這些問題的一整套方案。

Tars是騰訊從2008年到今天一直在使用的後臺邏輯層的統一應用框架TAF(Total Application Framework),目前支援C++,Java和NodeJs三種語言。

tars-node專案就是基於Tars這套成熟而強大的框架的擴充套件,讓Nodejs服務能夠執行在Tars應用程式框架中。專案地址: https://github.com/tars-node

2 服務開發

Tars應用程式框架上可執行http server

以及支援 tars和json 兩種協議的rpc client/server程式。

tars rpc client/server開發步驟詳見:tars服務開發和示例文件

0.png

其中rpc-json目錄下提供了基於json協議的rpc client/server ,rpc-tars目錄下則提供了基於tars協議的rpc client/server。

3 服務釋出

3.1 服務命名

使用Tars框架的服務,其的服務名稱有三個部分:

APP:應用名,標識一組服務的一個小集合,在整個系統中,應用名必須是唯一的。例如:TestApp

Server:服務名,提供服務的程序名稱,其命名一般以“Server“結尾。例如:HelloServer。

Servant:服務者,提供具體服務的介面或例項。例如:Hello。一個Server可以包含多個Servant。

系統會使用服務的APP + Server + Servant,進行組合,來定義服務在系統中的路由名稱,稱為路由Obj,其名稱在整個系統中必須是唯一的,以便在對外服務時,能唯一標識自身。因此在定義APP時,需要注意APP的唯一性。

應該嚴格遵守命名規則,明確大小寫。

3.2 服務建立

登入tars管理系統,左側選單中可以看到服務管理選單

1.png

點選選單中的服務上線

2.png

服務基本資訊”表單需要填寫服務的基本資訊:

應用:填寫該服務所屬的應用名稱,若要建立一個新的應用,可到系統管理>

應用列表中新增

服務型別:根據服務實現的語言填寫,此處選擇NodeJs即可

服務名稱:填寫服務名稱

模板名稱:選擇服務啟動時所使用的配置檔名稱,此處一般選擇tars.cloud.default即可

是否啟用set:指服務是否需要按set進行部署,選擇“否“即可。

“OBJ部署資訊”表單用於填寫服務中servant的資訊,需要關注的幾個屬性如下:

部署IP:選擇服務將要部署的機器IP

OBJ繫結IP:obj要繫結到的ip,與部署ip相同

OBJ名稱:obj的名稱,一般使用servant名稱+“Obj”來命名

OBJ:指OBJ要繫結的埠,如果不需要繫結特別的埠,可以點選自動生成埠來生成

是否tars:指服務是否使用tars協議。注意:此選項只能在開發tars協議的rpc server/client時勾選,若服務是http服務或者使用json協議的rpc服務,則不能勾選此選項

執行緒數:對於其他語言實現的tars服務,此選項指的是開啟多少個業務處理執行緒,而對NodeJs服務來說此配置用於告知程序管理器開啟多少個工作程序。

填寫完這兩個表單之後點提交即完成服務建立。

3.3 打包釋出

NodeJs服務打包必須要使用與目標執行環境相同(類似)的環境進行。

在打包環境中安裝tars框架服務打包工具 npm install -g @tars/deploy

在需要打包的服務根目錄下執行 tars-deploy servername,即可完成服務打包。

打包完成後在當前目錄可以看到servername.tgz檔案。

進入tars管理平臺,從左側選單樹進入前面步驟建立的服務,點擊發布管理。

3.png

點選手動上傳發布包,上傳完成後,點選獲取釋出版本,選擇剛剛上傳的釋出版本,點擊發布,即可完成服務釋出。

6.png

進入服務管理介面,若服務實時狀態為active,則說明服務已經發布成功並正常執行。

tars管理平臺還提供了很方便的快速回滾、服務包管理等功能。

3.4 服務擴容

進入tars管理平臺,點選左側選單樹服務管理>服務擴容,進入擴容管理介面

4.png

選擇好要擴容的服務,點選下一步

5.png

選擇要擴容到的機器,點選提交擴容,即可快速完成服務擴容步驟。

3.5 服務下線

進入tars管理平臺,從左側選單樹進入服務管理>服務下線

根據應用名稱和服務名稱查詢到要下線的服務

7.png

選擇要下線的服務,點選下線,若服務實時狀態是inactive,則可下線該服務。

8.png

相關推薦

TARS快速入門(NodeJs)

1 前言 一個NodeJs應用程式框架需要關注很多問題,如自動釋出、多機部署、負載均衡、監控報警、日誌的輸出與管理、服務異常重啟等等,而Tars應用程式框架就提供瞭解決這些問題的一整套方案。 Tars是騰訊從2008年到今天一直在使用的後臺邏輯層的統一應用框架TAF(Tot

puppeteer (Nodejs版selenium )快速入門

-o 三方 fault selenium con ade 打開 close sele 官網 https://pptr.dev/ api 與 教程: https://pptr.dev/#?product=Puppeteer&version=v1.6.0&am

Nodejs ORM框架Sequelize快速入門

Nodejs ORM框架Sequelize快速入門 什麼是ORM? 簡單的講就是對SQL查詢語句的封裝,讓我們可以用OOP的方式操作資料庫,優雅的生成安全、可維護的SQL程式碼。直觀上,是一種Model和SQL的對映關係。 const User = sequelize.define('user', {

nodejs快速入門(一)-模組化開發

    隨著網站開發的複雜度越來越高,js程式碼和js檔案的增多,出現了開發者頭疼的兩個問題:① 命名衝突;②檔案依賴。js模組化開發可以解決這些問題。   ①變數命令衝突        在js檔案中,如下建立一個變數並賦予一個函式。如果檔案的程式碼過多,在後續的程式碼中再次

Nodejs快速入門

[[email protected] ~]# npm search express NAME | DESCRIPTION | AUTHOR | DATE express |

day39-Spring 12-Spring的JDBC模板:快速入門

pri 哪些 困難 ces 5.0 使用 只需要 common commons Spring AOP的關鍵是它的底層的原理和思想,配置和使用並不是十分困難.AOP本身就是一個思想,是面向對象的延伸,不是用來替換面向對象的,而是用來解決面向對象中的一些問題的.在最初的時候提出

vuex2快速入門

for nbsp mar lin ext mac os cnblogs value san #建立store.jsimport Vue from ‘vue‘; import Vuex from ‘vuex‘; Vue.use(Vuex) export d

快速入門系列--WCF--07傳輸安全、授權與審核

最大的 緩存 ims cut 常見 曾經 strong 這一 set 這部分主要涉及企業級應用的安全問題,一般來說安全框架主要提供3個典型的安全行為:認證、授權和審核。除了典型的安全問題,對於一個以消息作為通信手段的分布式應用,還需要考慮消息保護(Message Prote

快速入門系列

body 現在 安全 behavior 需求 discovery 中心 驗證 溝通 最後一章將進行WCF擴展和新特性的學習,這部分內容有一定深度,有一個基本的了解即可,當需要自定義一個完整的SOA框架時,可以再進行細致的學習和實踐。 服務端架構體系的構建主要包含接下來

快速入門系列--WCF--02消息、會話與服務寄宿

abc align bsp 不同的 cpu .org 程序 伸縮 網絡 經過WCF基礎的ABC學習,已經可以構建簡單的WCF的服務,使用不同的服務地址和綁定類型,根據業務提供所需的服務契約。但不禁想問,服務所使用的消息報文是什麽樣的形式麽?蘊含什麽樣內容呢?WCF服務是否支

python 基本語法速覽,快速入門

我們 method adding ger monk use gre 數據類型 struct https://zhuanlan.zhihu.com/p/24536868 學習參考於這個博文。 我做一個筆記。 關於python一些常用的語法快速的預覽,適合已經掌握一門編程語

Django REST framework 的快速入門教程

ret turn ads 使用 blog 所有 定義 想去 cti CRM-API項目搭建 序列器(Serializers) 首先,我們來定義一些序列器。我們來創建一個新的模塊(module)叫做 crm/rest_searializer.py ,這是我們用來描述數據是如何

Celery 分布式任務隊列快速入門

ade sunday reat 失敗 繼續 complete port 機器 single Celery介紹和基本使用 在項目中如何使用celery 啟用多個workers Celery 定時任務 與django結合 通過django配置celery period

Unity快速入門

小冰 教程 應該 arp nbsp 2.3 入門 模擬操作 飛機 1.熟悉基本操作。 最權威的應該是官方出品,158元的Unity官方教程,其他的基礎操作視頻 lynda 的5.0 ,5.4都可以 2.熟悉簡單例子,將API熟悉一下啊,這個過程中,背誦API是捷徑。 2

Vue.js——60分鐘快速入門

attribute 否則 style屬性 快速 基於 oid creat get rac Vue.js是當下很火的一個JavaScript MVVM庫,它是以數據驅動和組件化的思想構建的。相比於Angular.js,Vue.js提供了更加簡潔、更易於理解的API,使得我們能

Redis快速入門

pool har 語法 ansi 使用 https 測試的 對象 sta Redis快速入門 一、簡介 Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的A

快速入門系列--WebAPI--03框架你值得擁有

let lan 最重要的 reason cnblogs err 註意 解釋 max 接下來進入的是俺在ASP.NET學習中最重要的WebAPI部分,在現在流行的互聯網場景下,WebAPI可以和HTML5、單頁應用程序SPA等技術和理念很好的結合在一起。所謂ASP.N

快速入門系列--WebAPI--01基礎

簡單例子 codec 應該 sem ons 請求重定向 選擇 char 阻止 ASP.NET MVC和WebAPI已經是.NET Web部分的主流,剛開始時兩個公用同一個管道,之後為了更加的輕量化(WebAPI是對WCF Restful的輕量化),WebAPI使用了新的管道

快速入門系列--MVC--06視圖

出版 value 快速入門 stream 類型 path .cn esc eba 到了View的呈現板塊,感覺ASP.NET MVC的學習也進入了尾聲,還是比較開心的,畢竟也有了不小收獲。這部分內容相對比較簡單,因為之前還專門學習過如何結合HTML5與MVC框架。前

快速入門系列--CLR--03泛型集合

value mov nts readonly 只有一個 並且 cer view 工作 .NET中的泛型集合 在這裏主要介紹常見的泛型集合,很多時候其並發時的線程安全性常常令我們擔憂。因而簡述下.NET並發時線程安全特性,其詳情請見MSDN。 普通集合都不支持多重並發寫操