改善大流量下服务器响应时延

Improving the latency of server response under high-volme traffic

我有一个电子商务应用程序,当有 5 到 10 个用户使用时,它可以完美运行。

但是50-60人用的时候真的很慢

目前我正在使用 MySQL & PHP。

我正在调用具有 MySQL 连接代码的 .php 文件。从那里我正在获取 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 位用户访问此应用时,应用应响应迅速并快速加载项目。

在服务器端,您需要研究管理大量连接的技术,例如enabling servers to handle high-volume traffic, as well as network-level issues like dynamic load balancing

在客户端,您可以使用 Volley with okHttp. You'd also have to enable the usage of okHttp on the server side 使其正常工作。

参考文献:

1. Tactics for using PHP in a high-load site.

2. Separating dynamic and static content on high traffic website.

3.

4. Using SPDY on Your Web Server.