简介


本文适用于使用源码部署的Tars框架。

具体部署请参考腾讯开源后台开发框架Tars安装。

这种方式安装的框架,其各个服务是编译出来的独立的进程,所以更新时也是独立更新。

注意:不建议单独更新某一个模块,因为各个模块的版本可能存在依赖关系,建议整套升级。

本文是笔者自行安装后的总结,具体以官方发布为准。

升级步骤


  1. 下载最新版本代码

git clone https://github.com/TarsCloud/TarsFramework.git --recursive

如果已经有这个代码,执行’git pull’更新即可。

  1. 编译
// 同安装流程
cd TarsFramework
git submodule update --remote --recursive
cd build
cmake ..
make -j4
  1. 更新

框架服务的安装分两种:

  • 核心基础服务(必须的),必须手工部署的,包括:tarsAdminRegistry, tarsregistry, tarsnode, tarsconfig, tarspatch
  • 普通基础服务(可选的),可以通过管理平台发布的(和普通服务一样),包括:tarsstat, tarsproperty,tarsnotify, tarslog,tarsquerystat,tarsqueryproperty

编译后,所有服务的二进制可执行文件均已生成,进行服务替换即可。

单个服务的替换操作为:

// 谨慎操作,建议替换前先备份
cp -rf tarsregistry/bin/tarsregistry /usr/local/app/tars/tarsregistry/bin/tarsregistry
// 启动
/usr/local/app/tars/tarsregistry/bin/util/start.sh

可以待所有服务都替换完毕后,再重启tars框架。步骤略(可参考下节的自动升级)。

3+. 服务自动升级

每次一个一个升级会比较麻烦,我已经整理了一个脚本,可替换所有服务,最后重启Tars框架:

$ cat update.sh
#!/bin/sh# 注意本脚本在编译后的build目录下执行
# 使用root权限
# 本脚本未做备份,建议提前备份各服务# 输出脚本执行过程
set -x# 定义代表服务的变量
s1="tarsnode"
s2="tarsAdminRegistry"
s3="tarsregistry"
s4="tarsconfig"
s5="tarspatch"s6="tarsstat"
s7="tarsproperty"
s8="tarsnotify"
s9="tarslog"
s10="tarsquerystat"
s11="tarsqueryproperty"# 定义目录
SRC="servers/"
DST="/usr/local/app/tars/"# 开始拷贝
yes | cp -rf ${SRC}${s1}/bin/${s1} ${DST}${s1}/bin/ || echo "install ${s1} failed"
yes | cp -rf ${SRC}${s2}/bin/${s2} ${DST}${s2}/bin/ || echo "install ${s2} failed"
yes | cp -rf ${SRC}${s3}/bin/${s3} ${DST}${s3}/bin/ || echo "install ${s3} failed"
yes | cp -rf ${SRC}${s4}/bin/${s4} ${DST}${s4}/bin/ || echo "install ${s4} failed"
yes | cp -rf ${SRC}${s5}/bin/${s5} ${DST}${s5}/bin/ || echo "install ${s5} failed"
yes | cp -rf ${SRC}${s6}/bin/${s6} ${DST}${s6}/bin/ || echo "install ${s6} failed"
yes | cp -rf ${SRC}${s7}/bin/${s7} ${DST}${s7}/bin/ || echo "install ${s7} failed"
yes | cp -rf ${SRC}${s8}/bin/${s8} ${DST}${s8}/bin/ || echo "install ${s8} failed"
yes | cp -rf ${SRC}${s9}/bin/${s9} ${DST}${s9}/bin/ || echo "install ${s9} failed"
yes | cp -rf ${SRC}${s10}/bin/${s10} ${DST}${s10}/bin/ || echo "install ${s10} failed"
yes | cp -rf ${SRC}${s11}/bin/${s11} ${DST}${s11}/bin/ || echo "install ${s11} failed"# 重启Tars框架
/usr/local/app/tars/tars-start.sh

以上脚本运行完毕后,所有服务都已更新。

  1. web升级

后台的服务都升级完成后,还需要升级TarsWeb。

这里只介绍v2.4.7以上版本的更新。

对于新版本,tars-web由一个模块组成:tars-node-web: tars-web主页面服务, 默认绑定3000端口, 源码对应web目录。

通过pm2 list查看模块运行状态。如果没有这个命令,执行:source /etc/profile 配置环境变量。

web的默认安装位置在 /usr/local/app/web,下载最新代码后,执行以下操作:

  • 修改web配置文件:web/config/webConf.js, web/config/tars.conf,修改db的ip为当前mysql ip, 修改tars的ip为当前环境的registry的ip
  • 重启web模块:pm2 restart tars-node-web

关于配置文件的修改,可以在旧代码中先将那两个文件拷贝备用,下载最新代码后再覆盖回去就行了。

此时,执行pm2 list可以看到如下输出:

刷新页面即可在右上角看到版本号。

  1. Dcache升级

对于使用Dcache的同学,现在方便多了,编译后,利用官方升级脚本,实现一键安装升级:

# 下载代码、编译完成后执行以下指令即可
../deploy/install.sh TARS_MYSQL_IP TARS_MYSQL_PORT TARS_MYSQL_USER TARS_MYSQL_PASSWORD DCACHE_MYSQL_IP DCACHE_MYSQL_PORT DCACHE_MYSQL_USER DCACHE_MYSQL_PASSWORD CREATE(true/false) WEB_HOST WEB_TOKEN NODE_IP

如我的机器上直接执行:

../deploy/install.sh 192.168.1.2 3306 tars tars@123456 192.168.1.2 3306 dcache dcache2019 false 192.168.1.2:3000 c63ae454524e9454dsfsaea3639ea9d1c6354221 192.168.1.2

这样公共包都安装好了。

下面就可以开始发布模块了。

小节


这样升级是相对麻烦了点。

做过一次之后,写成脚本,再次升级时就简单了。

只需要做好备份和检查,基本没问题。

最后,建议不要升级太频繁,因为仓库版本的稳定性还是需要验证的。

Linux下Tars框架服务更新(含自动更新脚本)相关推荐

  1. linux下svn(subversion)服务端添加工程及配置权限

    linux下svn(subversion)服务端添加工程及配置权限 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/9010507.html 此篇我只是将所做过的 ...

  2. Linux 下 离线下载服务部署 CCAA的安装使用

    Linux 下 离线下载服务部署 CCAA的安装使用 我的小站.Github CCAA 是服务器离线下载解决⽅案包,组件包含了Aria2 提供离线下载,ccaa_web⽀撑AriaNg运⾏, Aria ...

  3. linux使用flask设计网站,linux下Flask框架搭建简单网页

    开始安装FLASK需要创建一个虚拟环境,虚拟环境可以不干扰正在使用的系统环境,避免影响,并且也不需要完全的root权限,更加安全可靠. 搭建环境 Python3.4 进入到microblog目录下创建 ...

  4. Linux下的samba服务配置详解

    Linux下的samba服务配置详解 一.Samba介绍 二.Samba工具及特性 三.搭建环境介绍 四.Samba配置步骤 1.服务端操作 2.在客户端操作 五.测试用户的权限情况 一.Samba介 ...

  5. linux 下停止监听程序,Linux下启动Oracle服务和监听程序步骤

    Linux下启动Oracle服务和监听程序启动和关闭步骤整理如下: 1.安装oracle: 2.创建oracle系统用户: 3./home/oracle下面的.bash_profile添加几个环境变量 ...

  6. Linux转到Server服务,Linux下安装telnet-server服务

    Linux下安装telnet-server服务 一.telnet分为客户端和服务器端程序,所以,首先查看本机是否安装有telnet server服务, 命令为:rpm –qa | grep telne ...

  7. linux通用自启动管理,linux下通过xinetd服务管理 rsync 实现开机自启动

    1.1 xinetd服务配置 1.1.1 检查xinetd服务是否安装 [root@backup ~]# rpm -qa xinetd [root@backup ~]# rpm -ql xinetd ...

  8. 介绍一下linux下的samba服务

    介绍一下linux下的samba服务 实验环境 VMware 6.5.2 +redhat Enterprise 5 AS 我的内核版本 上面两个是windows server 2003 共享文件时的画 ...

  9. linux 下通过 httpd服务创建网页

    linux 下通过 httpd服务创建网页 1.安装httpd服务 yum install httpd -y [root@node143 ~]# yum install httpd -y 2.查看防火 ...

最新文章

  1. tenflow数据集_计算机视常用的数据集 Data sets
  2. SQL Server中Rollup关键字使用技巧
  3. ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程
  4. 27.垃圾收集器(Serial收集器、ParNew收集器、Parallel收集器、Parallel Old 收集器、CMS收集器、G1收集器、常用的收集器组合)
  5. linux下drcom无法上网,drcom为什么还是不能上网啊!
  6. python rpa库_Automagica python RPA库实践
  7. 【英语学习】【WOTD】adjudicate 释义/词源/示例
  8. awk if 不包含_linux高级运维必会命令——AWK命令详解及实例分享
  9. CKEditor安装
  10. 准备创业或刚创业的朋友必读
  11. 写在这一年实习的总结
  12. InnerJoin分页导致的数据重复问题排查
  13. easydarwin 安装_win10安装EasyDarwin并作为流媒体服务器的推流和拉流实例
  14. HTML点击头像修改页面,头像修改页.html
  15. oracle中number的用法,Oracle Number数字
  16. java中的字符串池
  17. C++(基础) 每日一题 4.编写一个函数print 打印一个学生的成绩数组,该数组中有5个学生的数据,每个学生的数据包括num,name,scor[3]3门课的成绩。
  18. 这所“南方小镇”藏着雅居乐陈卓林描绘的“第二人生”
  19. 批量处理 | 起点和终点交叉配对进行路线查询
  20. 安卓rom包解包linux,Android rom解包打包工具

热门文章

  1. 2023年2月天猫平台面膜品牌销量排行榜(天猫销售数据分析)
  2. unity3d 赛车游戏——复位点检测
  3. 2021年美容师(技师)考试资料及美容师(技师)找解析
  4. iOS 开发实战培训
  5. iOS开发之c语言入门教程
  6. 解决Cannot read property ‘onCheckForUpdate’ of undefined问题
  7. Uncaught ReferenceError: URLSearchParams is not defined
  8. php 中trim的意义,php中的trim
  9. cnzz 广告管家 代码下载 java,CNZZ“广告管家”让订单管理一气呵成
  10. 网站搭建系列:云虚拟主机的建站使用体验(和云服务器区别)