多服务器数据同步
最近做个项目,为了提高性能,数据取出来之后均放到缓存中,当这些数据发生变化时,废除相应的缓存数据。而当应用布署到多台集群的应用服务器上时,各个应用服务器都有可能同时修改更新数据,当某一台应用服务器修改了数据,此时,只废除了本应用服务器相应的缓存数据,而其它的集群服务器上相应缓存没有被废除。此时,在集群服务器间,就产生了缓存数据的不统一,不完整。
要解决此问题,就要实现在集群的多服务器间实现数据的同步。本文档从技术和具体实现方案方面阐述具体的实现数据同步技术。这种方案不仅适用于该平台的缓存数据同步问题,同时具备应用到其它数据同步问题上,也可迁移到其它平台上或者应用软件上,实现类似的多服务器间数据同步问题。
同步的目的
为实现多台服务器间缓存数据的同步一致。以便使平台可以布署到多台集群的服务器上。
同步的原理
把多台服务器看成是一个对等的网络,每台服务器启动时,加载一单独线程,用来监听其它服务器发来的消息。各服务器间采用TCP/IP连接。具体处理方式描述如下:
1、当本服务器缓存数据发生变化更新时,单独线程同时给其它服务器发出相应的消息。
2、当本服务器收到消息时,根据消息号废除相应的缓存数据。
涉及技术
TCP/IP网络、多线程