TarsCloud / Tars

Tars is a high-performance RPC framework based on name service and Tars protocol, also integrated administration platform, and implemented hosting-service via flexible schedule.
BSD 3-Clause "New" or "Revised" License
9.79k stars 2.08k forks source link

同时发布一个服务的多个节点的实现问题 #820

Open dangesong opened 3 years ago

dangesong commented 3 years ago

What language are you using?

C++

What operating system (Linux, Ubuntu, …) and version?

Linux

What runtime / compiler are you using (e.g. jdk version or version of gcc)

4.8.5

Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs). tars的发布流程:tarsweb上传安装包 -> tarsAdminRegistry开始发布 -> tarspatch 从/usr/local/app/patchs/tars.uplaod拷贝server.xxx.tgz到/usr/local/app/tars目录下,并重命名为server.tgz -> 通知tarsnode拉取server.tgz。最后发布服务etc 想问一下: 为啥需要执行这个拷贝的逻辑,直接告诉tarsnode来拉取server.xxx.tgz不也可以么? 考虑点:

  1. 单服务多节点发布时,这个拷贝逻辑也执行了多次,性能损耗
  2. 使用NFS时,会限制同一个源文件 -> 目标文件的拷贝,导致发布卡顿甚至失败
dangesong commented 3 years ago

改动之后的流程: tarsweb上传安装包 -> tarsAdminRegistry开始发布 -> 通知tarsnode拉取server.xxx.tgz 最后发布服务etc

麻烦大佬们看下这个逻辑有啥问题?

ruanshudong commented 3 years ago

好像也没有什么问题, 你可以改了试一试, 看看发布啥的有啥问题, 没问题可以代码合并进来