【问题标题】:Improving the latency of server response under high-volme traffic [closed]改善大容量流量下服务器响应的延迟[关闭]
【发布时间】:2015-06-08 04:11:14
【问题描述】:

我有一个电子商务应用程序,当有 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 名用户访问此应用时,该应用应具有响应能力并快速加载项目。

【问题讨论】:

    标签: php android mysql high-availability high-load


    【解决方案1】:

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

    在客户端,您可以使用VolleyokHttp。您还必须启用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. How to implement Android Volley with OkHttp 2.0?

    4. Using SPDY on Your Web Server.

    【讨论】:

      猜你喜欢
      • 2018-05-19
      • 2011-09-26
      • 1970-01-01
      • 2011-02-01
      • 2013-01-02
      • 1970-01-01
      • 2022-10-24
      • 2018-08-09
      • 2012-02-08
      相关资源
      最近更新 更多