python-mysql-replication原理分析
- 源码地址:https://github.com/noplay/python-mysql-replication
- 文件解析:
-
├── binlogstream.py ├── bitmap.py ├── column.py ├── _compat.py ├── event.py ├── exceptions.py ├── gtid.py ├── __init__.py ├── packet.py ├── row_event.py ├── table.py
- binlogstream.py
- BinLogStreamReader类,是调用入口,这个类支持用户传入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实现)
- pymysql中的protocol.py:MysqlPackge类,具体包的格式和读写
-
作者:bytesmover
出处: https://www.cnblogs.com/longbozhan/p/15635939.html
如果您觉得本文对您有帮助,请点击一下右下方的推荐按钮, 如果您对本文有任何疑问并想和作者探讨,请在本文下方评论,我看到后将第一时间回复!
版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。
出处: https://www.cnblogs.com/longbozhan/p/15635939.html
如果您觉得本文对您有帮助,请点击一下右下方的推荐按钮, 如果您对本文有任何疑问并想和作者探讨,请在本文下方评论,我看到后将第一时间回复!
版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。