定义
NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。一台机器中可以配置,只有服务器;集群中也可以进行配置,选择其中一台作为服务器,其余节点均作为客户端。
存在的意义
不同的机器时间可能不一样,即使某个点手动调整成一样的了,由于不同机器自身硬件的差异,随着系统的运行,时钟也会不一致,所以,需要某些软件,定时的进行时钟的同步。
注意点:雪花算法生成id,写代码时需要考虑时钟回退的case。
安装
yum -y install ntp
配置
配置文件
centos7的ntp配置文件存放路径为:/etc/ntp.conf
服务器配置
客户端配置
查看配置是否成功
timedatectl
ntpq -p
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"
快速同步/平滑同步的设置