技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 系统架构 --> LVS & MySQL NDB Cluster

LVS & MySQL NDB Cluster

浏览:3721次  出处信息

章文嵩博士(LVS开源项目创始人)进入淘宝好几个月了,今天是他第一次讲解LVS的实现原理。作为DBA的一员,终于近距离膜拜了大牛。
讲解的内容就不具体介绍了,在LVS官方网站上面可以找到。PPT的内容和网站上基本上一样,只是讲解人是章博士本人。我在这整理一下自己的理解,不对请大家指正。 ^_^

组成LVS最重要的部分有三个:请求分发服务器、处理服务器、共享存储。
典型的Web集群并不需要共享存储,只有请求分发服务器和处理服务器,如下图所示:
LVS_WEB
如果完成请求需要基于数据,那么共享存储就是LVS必须的组件了。LVS邮件服务器集群如下所示:
LVS_MAIL
目前能应用于LVS的MySQL集群只能是NDB Cluster,因为MySQL众多的存储引擎中,只有NDB Cluster实现了共享存储的功能。
在NDB Cluster中,SQL Node相当于处理服务器,Data Node相当于共享存储。LVS可以让应用程序的开发更加简单,开发人员并不需要知道执行SQL的数据库服务器到底是哪一个,但是可以获得自己想要的数据。而NDB Cluster提供的数据拆分和扩容功能,保证了数据库的可扩展性。

美中不足的是,NDB Cluster的性能实在太差。即使LVS负载均衡做得很好很强大,NDB Cluster也会成为瓶颈。
根据我的观察发现,LVS的架构非常适用于CPU-bound的应用场景。虽然共享存储的引入使得LVS能够支持有状态的连接,但是LVS并不适用于IO-bound的应用。因为不管负载如何均衡,最终瓶颈在于共享存储之上。而共享存储如何拓展,LVS并不关心。也许只有NDB Cluster提升了IO性能之后,LVS才能真正在MySQL方面应用起来。

非常感谢章博士的分享,NDB Cluster终于让我觉得不那么鸡肋了。

建议继续学习:

  1. LVS hash size解决4096个并发的问题    (阅读:5430)
  2. LVS & MySQL NDB Cluster    (阅读:4055)
  3. 记一次LVS/Nginx环境下的访问控制    (阅读:3842)
  4. 利用MySQL Cluster 7.0 + LVS 搭建高可用环境    (阅读:3389)
  5. MySQL Cluster 与 MongoDB 复制及分片设计及原理    (阅读:3218)
  6. 怎么样让 LVS 和 realserver 工作在同一台机器上    (阅读:3154)
  7. MySQL Cluster致命缺点    (阅读:2946)
  8. MySQL Cluster Manager 工作原理、安装及使用    (阅读:2918)
  9. MySQL Cluster集群探索与实践    (阅读:2830)
  10. Two-phase commit(2PC) 与MySQL Cluster    (阅读:2623)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1