这里情况复杂!
现在的情况:我们有一个主服务器只做他的事情。数据每秒钟都在变化。我们需要一个网络小部件(html 数据)来与其他网站共享。该小部件必须每分钟刷新一次。小部件数据将每秒更改一次。所有其他网站的访问者都必须看到该信息。我们无法处理如此高的流量。服务器需要 24/7 在线,他们不会每分钟连接一次。我说的是每月一百万次展示。
我们正在研究的解决方案:获取多个托管计划。所有主机都将存储将显示给访问者的 HTML 数据。每个托管帐户都会每隔一分钟对我们的主服务器执行一次 cronjob。获取 html 并将其存储到下一个 cronjob。这就是我们将流量从主服务器转移到其他地方的方式。现在是网站访问者连接到存储在我们主机中的 html 的部分。下面的代码正在连接第一个托管服务器,如果他在一段时间内没有回答,它将连接到第二个。并循环直到其中一些返回 HTML 数据。当然,如果他们 100% 加载,我们将获得另一个新主机。
<script>
server_1 = 'http://hostingserver_one.com/';
server_2 = 'http://hostingserver_two.com/';
wait_for_response = 5000;
one_minute = 60 * 1000;
half_minute = 30 * 1000;
right_away = 1;
current_refresh_minute = one_minute;
current_refresh_server = server_1;
function ajaxRequestInfo() {
$.ajax({
type: 'GET',
url: current_refresh_server,
timeout: wait_for_response,
data: {},
success: function(data) {
$(".data_for_refresh").html(data);
},
complete: function(data) {
window.setTimeout(ajaxRequestInfo, one_minute);
},
error: function() {
changeRefreshServer();
window.setTimeout(ajaxRequestInfo, right_away);
},
async: true
});
}
function changeRefreshServer() {
if (current_refresh_server == server_1) {
current_refresh_server = server_2;
} else if (current_refresh_server == server_2) {
current_refresh_server = server_3;
} else if (current_refresh_server == server_3) {
current_refresh_server = server_1;
}
}
$(document).ready(function() {
ajaxRequestInfo();
});
问题是:这是最好的方法吗?!如果不是什么更好。我相信你们中的许多人已经通过了这种情况,但这是我的第一次:)