3

用Windows Server 2008搭建时钟同步服务器

 3 years ago
source link: https://www.cnblogs.com/cmt/archive/2011/01/02/1924246.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

用Windows Server 2008搭建时钟同步服务器

概述:

本文主要讲解如何通过Windows Server 2008搭建自己的时钟同步服务器,保证系统中各个服务器的时钟同步。

背景:

在上周五“博客无双”活动的奖品拍卖过程中,由于Web服务器与数据库服务器的时钟不同步,造成竞拍结果引起争议。最后5秒内出价的一位朋友,数据库记录的出价时间超出了拍卖结束时间。这个程序造成的问题,完全是我们的责任,我们将给那位最后出价者补偿一部WP7手机。给我们的教训是,技术上不能有丝毫疏忽。现在我们已经解决了服务器时钟同步问题,在这里将解决方法分享给大家。

时钟同步功能简介:

在Windows系统中,时钟同步是通过Windows Time服务(W32Time)完成的。W32Time通过NTP(Network Time Protocol)协议访问目标时钟同步服务器的123端口进行时间同步。服务器的地址可以在“时间与日期”设置窗口的“Internet Time” 选项中进行设置。Windows默认提供了几个互联网上的时钟同步服务器地址,比如:time.windows.com,你电脑上的时钟同步就是W32Time通过访问这里预设的服务器地址进行的。默认的时间间隔是7天。

你也许会问,既然Windows默认提供了时钟同步,那博客园服务器怎么会出现时间不同步的情况。这是因为我们的数据库服务器与互联网没有直接连接,无法访问预设的时钟同步服务器。所以,我们的解决方法就是搭配自己的时钟同步服务器,其他服务器都与这台服务器进行时钟同步。

配置步骤:

——服务器端配置——

1. 选择一台服务器作为时间同步服务器。

2. 运行Regedit,打开注册表编辑器。

3. 找到注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\,在右侧窗口中将AnnounceFlags的值修改为5。

4. 继续找到注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\,在右侧窗口中将Enabled的值修改为1。

5. 在命令行中输入”net stop w32time && net start w32time“重启W32Time服务。

6. 修改Windows防火墙设置,允许123端口的UDP连接。

——客户端配置——

1. 设置目标服务器地址:

打开修改日期与时间的窗口,进入“Internet Time” 选项,输入时钟同步服务器的网址或IP地址,如下图:

然后点击同步按钮,配置没问题的话,就会显示同步成功,如下图:

2. 设置同步时间间隔:

默认的同步时间间隔是7天,实在是太久了,可以修改为你想要的同步时间间隔。

在客户端电脑上打开注册表编辑器,找到注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient,在右侧窗口中找到SpecialPollInterval,打开修改窗口,选择十进制,输入同步时间间隔即可(单位为秒)。如下图:

posted @ 2011-01-02 21:20  博客园团队  阅读(34939)  评论(21)  编辑  收藏

#1楼

2011-01-02 21:25

IT鸟

好,我把自己电脑也同步下你那地址。我原来的是 time.windows.com

#2楼

[楼主] 2011-01-02 21:28

博客园团队

@ IT鸟
这是示例地址,没有提供时间同步服务。

#3楼

2011-01-02 21:31

我靠!!补偿一部手机。。。。。

俺也想要一部。如果提供一个全局时间同步方案能否送一部。哈哈

#4楼

2011-01-02 21:32

我现在的系统启动,一般都会先通过ws读取远程一台服务器的时间,作为全局时间。

然后计算发送、请求延迟得到比较准确的时间同步。

这两句话估计值一台WP7了吧。哈哈。

#5楼

[楼主] 2011-01-02 21:32

博客园团队

@
你的全局时间同步方案与这个有什么不同?

#6楼

2011-01-02 21:35

@ 博客园团队
我开个玩笑的。。。

因为我在.net里面调用时间,全部用封装的GlobalTimer。
而GlobalTimer会在系统初始化的时候进行偏移量修正。所以.net代码上时间是全局统一的。

不过这种方案不通用。比如用memcached/ mysql等一些非.net产品,就要取OS时间,导致还是没有效果。

#7楼

2011-01-02 21:55

sun8134

同步太频繁对服务器压力大么?

#8楼

[楼主] 2011-01-02 21:57

博客园团队

@ sun8134
压力很小。

#9楼

2011-01-02 22:02

sun8134

#10楼

2011-01-03 10:03

GUO Xingwang

时间同步在集群应用中作用很大,我遇到过由于时间不同步造成很大影响的场景。另外对公司的IT管理也很重要,省得大家抱怨迟到的问题。

#11楼

2011-01-03 10:43

逖靖寒

--这个程序造成的问题,完全是我们的责任,我们将给那位最后出价者补偿一部WP7手机。

赞博客园全心全意为用户考虑的态度。预祝下一次拍卖活动成功。

#12楼

2011-01-03 13:26

小AI

引用逖靖寒:
--这个程序造成的问题,完全是我们的责任,我们将给那位最后出价者补偿一部WP7手机。

赞博客园全心全意为用户考虑的态度。预祝下一次拍卖活动成功。
博客园虽说是程序上出问题了,解决的还是很好的,但是那位得到补偿手机的园友实在是相当的不给力啊,我查阅了一下每一篇文章阅读量100+,但是推荐30+,有些文章阅读量不到200,推荐数目居然超过100多了,实在是很无语。

#13楼

2011-01-03 22:45

李永京

引用小AI:
引用逖靖寒:
--这个程序造成的问题,完全是我们的责任,我们将给那位最后出价者补偿一部WP7手机。

赞博客园全心全意为用户考虑的态度。预祝下一次拍卖活动成功。
博客园虽说是程序上出问题了,解决的还是很好的,但是那位得到补偿手机的园友实在是相当的不给力啊,我查阅了一下每一篇文章阅读量100+,但是推荐30+,有些文章阅读量不到200,推荐数目居然超过100多了,实在是很无语。
博客园不拘小节啊....

#14楼

2011-01-04 10:02

vaerersfd

@ 小AI
自己在闪存拉推荐,没人顶,还在这说别人,真有意思,啥人都有,真是无耻

#15楼

2013-08-23 12:49

这艹弹的粘贷

楼主,你这个时钟同步是不是只适合两台电脑啊?

#16楼

2013-08-23 12:50

这艹弹的粘贷

我有四台服务器,设置好服务端后,只有一台服务器能同步。其它同步出错

#17楼

[楼主] 2013-08-23 15:08

博客园团队

@ 这艹弹的粘贷
建议通过 telnet ip 123 命令检查一下服务器之间的网络连接是否正常

#18楼

2013-09-05 09:26

这艹弹的粘贷

楼主:你好!现在我有一台服务器设置了服务端,在其中任何一台能与服务端时间同步后,另外两台都同步错误;用telnet命令联结服务端,都连接失败。我是找不到原因了?求解呀?

#19楼

2013-09-05 11:46

dudu

#20楼

2016-03-21 12:10

很会拱白菜

为什么我的客户端跟服务端有7-8秒的差距?

#21楼

2016-03-21 12:10

很会拱白菜

@
是客户端比服务端慢了7-8秒。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK