Home > Uncategorized > 双机数据一致性配置

双机数据一致性配置

之前对云计算框计算什么的不了解。把自己琢磨了几天的方案记录下来,随便说说,两三台服务器都不敢谈上架构。

 

需求大概这样:一个单机上运行的系统,有数据库、文件附件;为了适应国内复杂的网络环境,也为了实现负载均衡以及数据备份,在另外一个机房,加一台备用服务器。附件上传到主服务器,上传过程不用考虑网络问题。两台服务器都做前端机,用dnspod 可以配置动态域名,实现同一域名下的多台前端机;如果是客户端的接口服务器,那么客户端上可以获取服务器,轮询服务器。

 

问题是,如何配置两台机器,让他们能够同时进行数据库的读写,以及附件的读操作。并保证两台机器的数据一致性(即数据库、附件都能一致)

 

说下自己的想法。

  1. 数据库同步。数据库同步,还是用最经典的主从架构。写主库,读从库,主库到从库做热备份;不过鉴于服务器在不同机房,读操作直接读本地数据库就ok。
  2. 附件同步。三种方案。a) 利用inotify等触发式文件同步的方式实时同步附件。 b) 做反向代理到主服务器。其实可以理解为一个类似于CDN的方案。Nginx 自带的代理模块,可以做 caching reverse proxy。但是nginx的自带的caching reverse proxy 在HTTP请求带有Range参数时,有个HTTP状态码的小问题。详见 http://www.douban.com/note/91375654/
  3. 补充1: 原始方案是大概10年9月写的。我自身已经不用了。现在的解决方案是单机房,客户端连不上主机房A,会去尝试另外一个机房B的服务器。B只是A的HTTP反向代理。
  4. 补充2: 如果需要保证服务质量,并降低单点压力,那么需要考虑 IDC双写+数据同步了。数据的一致性是个难题。详见 @timyang多IDC的数据分布设计(一)

本文最后修改日期:2010/12/4

Advertisements
Categories: Uncategorized
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: