使用Ali-Tomcat启动多个HSF失败怎么办?

问题现象

使用Ali-Tomcat在同一台机器上同时启动多个HSF应用时,可能会出现无法删除临时目录的错误,或者类加载相关的问题。

可能原因

两个HSF进程同时启动的时候,会向相同的临时目录解压,相互造成干扰。

解决方案

  • 方式一:在启动参数中配置以下参数。
    • -Dcom.taobao.pandora.tmp_path= :用于指定不同的临时解压目录,可避免不同Tomcat进程使用同一份临时目录的冲突。
    • -Dhsf.server.port= :用于指定HSF不同的服务监听端口,默认为12200。如果在本地启动多个HSF Provider,则需要修改此端口,可避免端口冲突。
    • -Dpandora.qos.port= :用于指定Pandora不同的QoS端口,默认值为12201。如果在本地启动多个HSF Provider,则需要修改此端口,可避免端口冲突。
    • -Dproject.name= :用于指定HSF的应用名,应用部署时默认会启动该参数。

    关于配置JVM参数的操作步骤,请参见设置启动命令。关于参数的更多信息,请参见JVM -D启动配置参数

  • 方式二:在Tomcat配置文件的目录,找到conf/server.xml配置文件并修改监听端口。
    示例如下:
    <Server port="8006" shutdown="TAOBAO-TOMCAT-SHUTDOWN">
    <Connector port="8080" protocol="HTTP/1.1"
        connectionTimeout="15000" redirectPort="8443" maxParameterCount="1000"
        maxThreads="250" maxPostSize="2097152" acceptCount="200" useBodyEncodingForURI="true" />