Skip to content
zhaopuming edited this page May 18, 2012 · 8 revisions

问题背景

现在的项目工程中

  1. 很多服务(C++端)需要部署在服务器上才能联调。
  2. 我们的测试服务器是在外网的
  3. 因为有双向的通信,无法和内网的本地测试机通讯

这样就要求我们也只能把WebsiteBroker部署到线上,

然后才能通过联调操作来测试和发现问题。

因此导致几个问题:

  1. 部署迭代
  2. 远程Debug

远程Debug Tomcat

1. 用debug模式启动tomcat
export JPDA_ADDRESS=3721
bin/catalina.sh jpda start && tail -f logs/catalina.out
2. Eclipse Debug远程连接

这个可以方便发现线上服务器的问题

NOTE 如果在这个模式下改代码,是否可以实时更新到线上?

这里还有一个问题:

线上的网站不能以这个方式来调试,仍然只能够通过Log来发现问题

未来可能的解决方案:

如果网站使用双机负载均衡的方案部署的话,可以使用其中的一个来进行debug

迭代部署

联调测试阶段,需要频繁的部署上线测试服务器(发现问题及时修改才能继续测试)

现在的方案

  1. 本地编译(Eclipse), 脚本上传,替换配置文件,重启Tomcat 太慢
  2. Jenkins持续集成工具 需要单独一个Jenkins服务器

预想的其他方案

A. 使用rsync同步本地和服务器上的webapps文件夹
  1. rsync可以根据checksum来判断是否需要上传
  2. Tomcat Debug模式

问题:

线上和本地的配置文件不一致

B. 将服务器上的webapps文件夹共享,让eclipse直接往里头部署

问题:

  1. 还没试过
  2. 线上和本地的配置文件不一致
C. 远程编辑代码+Maven编译