改善大流量下服务器响应时延
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.
我有一个电子商务应用程序,当有 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.