php - 改善大流量下服务器响应延迟

标签 php android mysql high-availability high-load

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

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

目前我正在使用 MySQL 和 PHP。

我正在调用.php文件有 MySQL连接代码。然后我从那里获取 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 ,以及网络级问题,例如 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 .

关于php - 改善大流量下服务器响应延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30701138/

相关文章:

php - Symfony 4 在服务中使用 Doctrine

android - 支持设计库异常

javascript - 使用 Dropzone JS 将文件上传到子文件夹

php - laravel 在某些情况下自动将数据插入数据库

Android:findviewbyid:当 View 不在 setContentView 调用的同一布局上时,按 id 查找 View

mysql - 如何设置主从循环数据库复制的时间间隔?

javascript - 使用 Cordova、Javascript、PHP、MySQL 的实时多人游戏 - 帮助和提示

mysql - 使 View 永久化

php - cURL 已安装,但仍然出现此错误 Elasticsearch-PHP 需要 cURL 或自定义 HTTP 处理程序

android - 如何防止移动键盘在文本字段上升高页脚?