一 perforce proxy和 perforce replicated server
perforce通过perforce proxy和perforce replicated servers来很好地支持分布式团队的开发。proxy和replicated servers可以根据情况单独地使用或混合使用。可以通过简单地增加新的proxy或replicated server来适应全球的新的用户的增加。
perforce proxy
perforce proxy的执行文件为p4p,是一个自维护的proxy server,他缓存远程的p4server的versioned files到本地网络,从而大大地减少了本地用户传输文件的时间。如果一个文件已经被其他的用户请求到本地的proxy,本地的其他用户对此文件的访问都将直接操作本地的proxy,所以用户操作体验将会很流畅。同时p4p也减轻了main server的负荷。因为p4p自动地从main server获取跟新,所以我们也不需要对proxy进行备份。
perforce replication server
replicated perforce server维护了整个repository的一个只读的拷贝,可以只replicate p4 的datebase或者replicate所有的p4 database文件和versioned files。对main server的只读的操作可以被转到replicated server, 此方法也减轻了main server的负荷。同时replication还有高可用的作用,当mainserver停机时,开发人员还可以访问replication server来执行读操作。 或者可以快速地将replicated server转化为main server。
proxy的在windows上可以通过perforce.exe来安装proxy为service,或者在命令行运行p4p来启动proxy。
当作为service运行时,需要设置service的参数,例如命令p4 set -S "Perforce Proxy" P4POPTIONS="-p 1999 -t mainserver:1666"为perforce proxy service设置的启动参数为"-p 1999 -t mainserver:1666",“-p 1999”表示此proxy的监听端口为1999,“-t mainserver:1666”表示此proxy将是mianserver:1666的proxy。用户可以使用"ipofproxyserver:1999"来访问此proxy。
proxy也可以直接从命令行启动,例如p4p -p 1999 -t central:1666 -r /var/proxyroot启动的proxy监听端口1999,且mian server是central:1666,proxy的缓存目录为/var/proxyroot。
注意:
*不需要对proxy的缓存目录备份;
*在sync文件时可以使用-Zproxyverbose来查看文件是来自mainserver还是proxyserver,例如p4 -Zproxyverbose sync noncached.txt;
*使用-c参数表示在proxy和mianserver间文件传输压缩,压缩后减少了网络的负担,但是需要在增加了server的压缩和解压负担;
*p4p只有当用户提交文件修改或请求文件时,才将文件缓存到proxy的存储中,也就是说proxy不会提前自动地缓存所有的文件。但是一但文件被缓存过则直接从proxy的缓存获取;
*proxy的建立者可以使用-Zproxyload来将versionedfiles跟新到proxy的缓存,来减少以后的文件传输时间,例如p4 -Zproxyload sync //depot/main/...;
*可以使用文件夹连接来避免缓存目录的空间大小的限制;
作用:
*可以减少main server的负担和停机时间。 长时间的查询操作,报表,构建,和checkpoint都可以在replicated server上来完成。在replicated server上checkpoint可以减少对main server的lock时间。 且报表和checkpoint,只需要p4 server的database被replicated。对于构建任务,需要构建进程访问main server的versioned files。
*提供热备用的server。如果main server失败了,可以使用p4 replicate命令来维护replicated server作为热备用的server。此时replicated server需要database和versioned files均被replicated。 p4 replicated命令只能replicated database文件。对于versioned files的replicate需要使用p4 pull命令来完成。
6)使用p4d -In name 或 p4 configure name来给p4 server命名;
7)可以指定replicated server与mainserver交互的用户,如p4d -u svcuser,此类型的用户需要为service类型,只能用做replicated或proxy server,不占用license;
8)设置环境变量P4TARGET,或者在p4d -t host:port,或者在p4d运行后使用p4 configure P4TARGET 来指定replicated server所指向的main server;
9)startup.n 用来指定p4 pull的进程数量,可以多个p4 pull同时运行;
五 broker
完!