cassandra集群要求严格的时间同步

cassandra的集群对时间的要求是很严格的,在集群中的任何一台机器时间都必须保持同步,即便有一秒的延迟,也会带来莫名其妙的问题。因为cassandra是根据时间戳分辨出最后到达的响应,假设对同一个记录进行不同的操作,如果时间不同步,可能会导致前面的操作在后面的操作之后生效。当在高速操作的时候,可能会发生记录删除不掉,表drop了仍然存在等等奇怪的现象。

同时如果发生这些形形色色的奇怪问题,你应该首先查一下你的集群是否时间同步,假设真是时间不同步导致的,而你又没发现,这会浪费你好多时间去调查原因。

做时间同步可以是集群里的所有机器和同一个时钟同步服务器同步,也可以集群中的某一个机器作为时钟同步服务器,其它机器都和它做同步。

同步方式一般都有两种,一种是定时同步,就是linux下面用crontabl做个定时任务,定时同步。每隔多少时间去同步一次这种同步是粗劣的,不可取的。如果你想保证你的cassandra集群长期稳定的同步,你需要精准的时间同步,就是使用ntp同步,ntp也是一种时钟同步协议。它有自己的一套算法,当前相差多少,下次什么时候同步等等,它的这一套算法,可以保证时钟时时刻刻的同步。

ntp是linux的一个服务,配置文件是/etc/ntp.conf

配置和启动ntp服务的方法不用赘述了,百度下两个linux服务器如何同步,怎么配置ntp同步,文章一大片。

 

留言

提示:你的email不会被公布,欢迎留言^_^

*

验证码 *