深入浅出BAE:云数据库自动主从分离之利弊

BAE云数据库后端采用的是MySQL比较流行的主从架构,主从架构除了备份和容灾的作用外,还有一个很重要的功能是实现负载均衡,用从库来分担读压力。但细心的用户可能为会发现云数据库的入口却只有一个,这是因为云数据库为了使应用更简单的使用数据库,将主从分离在中间代理层实现。主要的思想是:普通的写发往主库,普通的读发往从库;事务都发往主库;同一连接里,写操作发生后一秒内,读也发往主库。

自动主从分离最大好处是应用完成无需关心主从问题,但又却能够通过主从分离得到读操作的性能提升。BAE云数据库代理层的自动主从分离也能满足大部分的应用需求。
而另一方面,既然是主从架构,那主从延时再所难免,绝大部分情况下主从延时都会很小,应用基本无法感知,但有时主从延时也会由于某些不好的更新语句而达到秒级、分钟级或是更高。这种情况就会对某些应用造成困扰,刚写进去的数据怎么读不到?创建表老提示表存在但又看不见?等等。有些应用对这种主从延时可以接受,可有些应用可能接受不了。
代理层有一个策略:事务都走主库。所以如果确实有应用对主从延时特别敏感,不妨将读操作放到事务中进行,这样的话就不会有主从延时了,但同时,也将不能通过从库分担读压力了。

此条目发表在 BAE使用 分类目录。将固定链接加入收藏夹。

深入浅出BAE:云数据库自动主从分离之利弊》有 2 条评论

  1. ego008 说:

    在BAE和SAE都遇到过这样貌似主从数据库引起的问题,现象:刚发表一个帖子,得到该帖子id,转向该帖子id,出现404(数据库里暂时没有该id的帖子)。

发表评论