2015-06-08 131 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