› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
kalsolio
V2EX  ›  MySQL

mysql 这个延迟问题 有解决方案或者尽量降低发生的办法吗?

  •  
  •   kalsolio · Apr 28, 2016 · 4148 views
    This topic created in 3837 days ago, the information mentioned may be changed or developed.

    现在有一个 一主多从的构架 一个从服务器的程序拿到一些数据 尽快的标记已读取 但是其他从服务器的程序还是有拿到那些标记的数据 每个从服务器拿取数据都不的不比较快 这个问题有什么好的办法吗

    9 replies  •  2016-04-29 08:51:02 +08:00
    kalsolio
        1
    kalsolio  
    OP
       Apr 28, 2016
    从服务器都在获取数据去处理 但是不允许二次处理
    现在一个从拿到之后 尽快的去标记我拿走了
    但是其他的从 还是会发生拿走那些不应该获取的数据
    kalsolio
        2
    kalsolio  
    OP
       Apr 28, 2016
    特别容易发生在 需要处理的数据比较少的时段.
    lecher
        3
    lecher  
       Apr 28, 2016 via Android
    MySQL 上面还要分发到从服务器本身就有延时,做这个加锁的事务处理比较麻烦。

    这是个典型的任务分发业务,可以考虑用消息队列,或者用支持队列的数据库进行处理,业务设计上比较简单。

    如果延时要求不是特别高, MySQL 可以考虑用在主库 update taskerlist set tasker = uid where tasker=0 这类的语句。
    查询没有被认领的并直接更新为认领状态,再去取业务数据,这个延时会小一些。
    junweiyang
        4
    junweiyang  
       Apr 28, 2016 via Android
    升级数据库版本 (逃
    aru
        5
    aru  
       Apr 28, 2016
    每个程序取个名字,表上增加一个字段 worker ,默认值为 NULL
    标记的时候加个限制条件
    update xxxtable set worker='myname' where 原来的限制条件 and worker is NULL;
    如果 affected row 为 0 ,那么表明被其他程序取走了,放弃这个任务,继续取其他任务
    Infernalzero
        6
    Infernalzero  
       Apr 28, 2016
    可以试试 5.7 ,主从同步支持多线程了
    kalsolio
        7
    kalsolio  
    OP
       Apr 28, 2016
    realpg
        8
    realpg  
       Apr 28, 2016
    明显你这是个 MQ 的需求,你非得弄成 MYSQL 复制……
    kalsolio
        9
    kalsolio  
    OP
       Apr 29, 2016
    @realpg 嗯 系统的部分确实是 MQ 的需求 但是整体上 还是需要用主从结构才行,还有很多别的类型数据需要主从来降低主库压力.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1313 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 19:32 · PVG 03:32 · LAX 12:32 · JFK 15:32
    ♥ Do have faith in what you're doing.