2015-06-08 73 views
2

我有一个电子商务应用程序,当5到10个用户使用它时,它可以很好地工作。提高高容量流量下服务器响应的延迟

但是,当它被50-60人使用时,它变得非常慢。

目前我正在使用MySQL & PHP。

我打电话给.phpMySQL连接代码的文件。从那里我获取JSON响应。

下面是我的代码:

class Items extends AsyncTask<String, String, String> { 

    protected String doInBackground(String... args) { 
      // Building Parameters 
      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      params.add(new BasicNameValuePair("id", Itemid)); 
      // getting JSON string from URL 
      JSONObject json = jParser.makeHttpRequest(url_allitems, "GET", 
        params); 



      try { 
       // Checking for SUCCESS TAG 
       int success = json.getInt(TAG_SUCCESS); 

       if (success == 1) { 

        products = json.getJSONArray(TAG_ITEMS); 


        for (int i = 0; i < products.length(); i++) { 

         JSONObject c = products.getJSONObject(i); 

         // Storing each json item in variable 
         String id = c.getString(TAG_ITEMID); 
         String name = c.getString(TAG_NAME); 


         // creating new HashMap 
         HashMap<String, String> map = new HashMap<String, String>(); 

         // adding each child node to HashMap key => value 
         map.put(TAG_PID, id); 
         map.put(TAG_NAME, name); 


         // adding HashList to ArrayList 
         productsList.add(map); 
} 

这是我的PHP代码:

$result = mysql_query("SELECT * FROM item_master") ; 

// check for empty result 
if (mysql_num_rows($result) > 0) { 
    $response["items"] = array(); 

    while ($row = mysql_fetch_array($result)) { 
     // temp user array 
     $item = array(); 
     $item["id"] = $row["id"]; 
     $item["code"] = $row["code"]; 
     $item["name"] = $row["name"]; 
     $item["description"] = $row["description"]; 
     $item["price"] = $row["price"]; 
     $item["image1"] = $row["image1"]; 

     // push single product into final response array 
     array_push($response["items"], $product); 

    } 
    // success 
    $response["psuccess"] = 1; 
    .... 
} 

那么,什么是优化在这种情况下的最佳方法?当超过1000个用户访问这个应用程序时,应用程序应该快速响应并加载项目。

回答

2

在服务器端,您需要查看管理大量连接的技术(如enabling servers to handle high-volume traffic)以及网络级问题(如dynamic load balancing)。

在客户端,您可以使用VolleyokHttp。您还必须启用okHttp on the server side的使用才能正常工作。

参考文献:

Tactics for using PHP in a high-load site

2.Separating dynamic and static content on high traffic website

3.How to implement Android Volley with OkHttp 2.0?

4.Using SPDY on Your Web Server

+0

好的。谢谢 :-) – deepak