我是做某网站系统S的定制开发的,因为有一套功能暂且叫 X功能,此功能很多S软件的客户都需要用到
以前我是在每个客户的服务器上,都给部署一套X,这样导致维护起来非常麻烦,只要X功能有更新,我就要给每个客户升级文件。现在我想把这个X功能的逻辑以API的方式部署在我自己的服务器A上,然后 客户的S系统通过请求我A服务器上的X接口,X接口再请求我部署在客户自己的数据库服务器上的一个接口处理文件getData.php, getData.php接收A传递过来的sql语句,查询后再返回给X,X再将数据呈现给S。由于这些数据库服务器都是客户自己的,并不是所有都支持外连,所以从X接口传递数据时,我将X接口需要的sql语句,采用curl的方式发给A,A服务器的getData.php获取到sql语句,执行查询数据,再将数据返回给X接口处理。现在的问题是
以前直接将接口X功能的文件部署在客户自己服务器上,不需要curl执行远程,可以直接查询数据库,耗时大概1s。
采用上述将X功能以接口的形式,独立部署,也就是我理解的将逻辑服务 和 数据库服务分开部署后,导致 逻辑服务器 和 数据库服务 每查询一次数据,就需要一次curl请求,耗时大概需要10s,请问如何提高速度?或者还有什么其他办法改进,第一次做这种分离部署。谢谢大家A服务器上的X接口 curl请求代码如下
采用post请求,直接传递sql语句  function doApiToClient($appid,$appsecret,$sql,$type){
        $push_api_url ="http://www.api-of-client.com/getData.php";
        $data['appid']=$appid;
        $data['appsecret']=$appsecret;
        $data['sql']="select * from goods where goods_id=10";
        $data['type']="select";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));//
        curl_setopt($ch, CURLOPT_URL, $push_api_url);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        $return = curl_exec($ch);
        curl_close($ch);
        $ret= json_decode($return,true);
        return $ret;
    }客户服务器S上的getData.php代码      public function index() {
           $dbs=kernel::database();//数据库实例           $type=$_POST['type'];
           $sql=$_POST['sql'];
           if($type=='select'){
                $ret= $dbs->select($sql);//是查询的返回查询数据
           }
           else{
                $ret= $dbs->exec($sql);//是update,delete的执行操作
           }           echo json_encode($ret);
     }