我有 100 多个微服务,它们首先构建在本地机器上,然后同步到目标机器并启动。
所有微服务都使用一个共享的 fat.jar 文件,重命名它并存储在它们的分发文件夹中。
/serviceA
/a.jar
/serviceB
/b.jar
...
Run Code Online (Sandbox Code Playgroud)
当我们将它 rsync 到服务器时,rsync 不会发现所有 jar 文件(它们一起占发行版的 99%)都是完全相同的 fat.jar。因此,如果 rsync 更智能,它实际上只能传输一个 a.jar,然后将其复制给所有其他人(因为它们的大小和散列将完全相同)。
这可能与 rsync 有关还是我应该寻找其他解决方案?这会显着降低部署速度,尤其是当我的互联网连接不佳时!
不要fat.jar在每台服务器上重命名原始文件。
如果必须使用其他名称访问该文件,请创建指向该文件的符号链接。
对于serviceA:
ln -s fat.jar a.jar
Run Code Online (Sandbox Code Playgroud)
对于serviceB:
ln -s fat.jar b.jar
Run Code Online (Sandbox Code Playgroud)