zoukankan      html  css  js  c++  java
  • 17.3.3 Using Replication for Scale-Out 使用复制扩展

    17.3.3 Using Replication for Scale-Out 使用复制扩展
    
    
    你可以使用复制最为扩展解决方案,也就是说,你需要分散数据库的查询负载到多个数据库服务器:
    
    因为复制分布在一个master到一个或者多个slave,
    
    
    使用复制用于扩展最好的环境是你有大量的读和少量的写/更新,
    
    很多的Web站点满足这种类型,  用户在浏览网站,阅读文章,帖子或者查看产品。
    
    
    更新只发生在会话管理,或者购买或者添加评论到一个论坛。
    
    
    复制在这种情况下,可以让你分散读到多个复制slave,  同时让你的web server  和复制master通讯
    
    当写是需要的,在图17.1中,可以看到这个场景的示例复制布局,“使用复制来提高扩展的性能”。
    
    Figure 17.1 Using Replication to Improve Performance During Scale-Out



    如果你的代码的一部分, 负责数据库的访问可以被正确的 抽象/模块化,
    
    
    
    
    转换来运行复制设置应该是很顺利的, 改变你的数据库访问的实现,发送所有的写到master,
    
    
    
    
    发送读到master或者slave. 如果你的代码没有这个层级的抽象,建立一个复制系统
    
    
    
    
    给你机会和动力来清理它, 创建一个实现下列功能的封装库或模块:
    
    
    safe_writer_connect()
    
    
    safe_reader_connect()
    
    
    safe_reader_statement()
    
    
    safe_writer_statement()
    
    
    
    
    
    
    safe_ 在每个函数名字意味着函数负责处理所有的错误状况,你可以使用不同的函数名字。
    
    
    
    
    重要的是要有一个统一的接口,用于连接读、写、读、写。
    
    
    
    
    然后转换你的客户端代码使用封装的库, 这个可能是痛苦的和可怕的过程。
    
    
    
    
    但是它有长期的回报,所有的应用使用这个方法能利用master/slave 配置,
    
    
    即一个调用多个slave.  代码更容易维护,并增加的故障排除选项是很小的,
    
    
    
    
    你只需要修改一个或者2个函数,比如, 记录每个语句执行时间,哪个语句给你一个错误:
    
    
    
    
    
    
    
    
    
    
    
    
    


  • 相关阅读:
    Reactor Cooling(无源汇有上下界网络流)
    费用流——消圈算法
    中间数(二分)+单调队列
    使用ServerSocket建立聊天服务器(二)
    使用ServerSocket建立聊天服务器(一)
    ServerSocket的建立和使用
    Socket介绍
    使用HttpClient进行Post通信
    使用HttpClient进行Get通信
    使用Post进行Http通信
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351302.html
Copyright © 2011-2022 走看看