AI智能
改变未来

python-mysql-replication原理分析

  1. 源码地址:https://github.com/noplay/python-mysql-replication
  2. 文件解析:
    ├── binlogstream.py├── bitmap.py├── column.py├── _compat.py├── event.py├── exceptions.py├── gtid.py├── __init__.py├── packet.py├── row_event.py├── table.py

  3. binlogstream.pyBinLogStreamReader类,是调用入口,这个类支持用户传入mysql配置,slave需要同步的信息等,同时实现了__iter__,注册slave,读packet,协议参考:https://dev.mysql.com/doc/internals/en/replication-protocol.html
  • packet.py
      BinLogPacketWrapper类,mysql网络包序列化和反序列化
  • event.py
      各个event(select、update、insert、delete、rollback、heartbeat等)对应的实现类,全都继承子BinlogEvent,在BinLogPacketWrapper类中把获取到的event映射到对应的evnet处理类
  • 依赖的基础文件
      pymysql中的connnections.py:Connection类,实现连接、读写mysql包(具体包格式由protocol实现)
    1. pymysql中的protocol.py:MysqlPackge类,具体包的格式和读写
  • 赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » python-mysql-replication原理分析