NTP的使用

289 阅读2分钟

定义

NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。一台机器中可以配置,只有服务器;集群中也可以进行配置,选择其中一台作为服务器,其余节点均作为客户端。

存在的意义

不同的机器时间可能不一样,即使某个点手动调整成一样的了,由于不同机器自身硬件的差异,随着系统的运行,时钟也会不一致,所以,需要某些软件,定时的进行时钟的同步。

注意点:雪花算法生成id,写代码时需要考虑时钟回退的case。

安装

yum -y install ntp

配置

配置文件

centos7的ntp配置文件存放路径为:/etc/ntp.conf

服务器配置

image.png

客户端配置

image.png

查看配置是否成功

timedatectl

ntpq -p image.png

ntpstat 查看同步状态 ntpdate -d排查错误信息

直接同步和平滑同步

直接同步

使用ntpdate命令进行同步,直接进行时间变更。
如果服务器上存在一个12点运行的任务,当前服务器时间是13点,但标准时间时11点,使用此命令可能会造成任务重复执行。因此使用ntpdate同步可能会引发风险,因此该命令也多用于配置时钟同步服务时第一次同步时间时使用。

注意:如果NTP Client和NTP Server时间偏差太大,可能导致Client的ntpd进程退出。

平滑同步

使用ntpd进行时钟同步,可以保证一个时间不经历两次,它每次同步时间的偏移量不会太陡,是慢慢来的,这正因为这样,ntpd平滑同步可能耗费的时间比较长。刚开始可能时钟不同步,多等待时间后慢慢就同步了。

如果配置成平滑同步 ,vi /etc/sysconfig/ntpd,在OPTIONS选项中增加"-x"参数:
  SYNC_HWCLOCK=yes
  OPTIONS="-g -x"
 
快速同步/平滑同步的设置

image.png