首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

道WEB机器时间同步的重要性

2013-10-31 
谈WEB机器时间同步的重要性作者:zhanhailiang 日期:2013-10-31php实现time()的方式是直接使用C的time()来

谈WEB机器时间同步的重要性

  作者:zhanhailiang 日期:2013-10-31

php实现time()的方式是直接使用C的time()来获取时间截, 而C的time()是直接读取当前机器时间值.

/* {{{ proto int time(void)   Return current UNIX timestamp */PHP_FUNCTION(time){    RETURN_LONG((long)time(NULL));}/* }}} */

如下脚本读取的时间都是当前机器的时间截.

<?php echo time().PHP_EOL;

此时就涉及一个问题: 对于一些对时间极度敏感的应用, 如果不同机器时间不同步, 可能导致读取到值不同.

比如: 最近万圣节活动, 要求女巫出现时间不能超过12秒, 我的做法是通过定时任务, 在推送女巫之前先在memcache写入一个校验值, 当用户点击女巫时请求php判断当前时间和校验值的差, 但是由于定时任务跑在web1机器, 读取的时间为web1的时间截, 而请求php可能被负载到不同的机器, 而若此时刚好这台机器较web1快了12秒以上, 导致校验不通过, 这样就直接影响线上业务.

其它场景, 比如memcache机器部署在独立机器, 同样需要关注机器时间同步问题.

参考阅读:

  • linux 时间同步的2种方法
  • 稳定的NTP时间同步服务器集群
    1楼Etoak_james26分钟前
    不错 顶了nnnnnnnQQ群:294881724 java高性能 和sql优化。

热点排行