Canal
https://github.com/alibaba/canal/
阿里巴巴的一个监控mysql变化的解决方案,原理其实很简单,Canal Client把自己模拟成mysql的slave,伪装自己为mysql slave,向mysql master发送dump协议,然后master会给slave同步binlog(byte类型),canal本身只支持抽取row-based的改动,可以根据自己需要去抽取自己需要的类型
会包含
mysql> show binlog events in ‘mysql-bin.000001’;
+——————+—–+————-+———–+————-+—————————————+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+——————+—–+————-+———–+————-+—————————————+
| mysql-bin.000001 | 449 | Update_rows | 2 | 526 | table_id: 35 flags: STMT_END_F |
| mysql-bin.000001 | 526 | Xid | 2 | 553 | COMMIT /* xid=26960 */
Swagger
https://github.com/swagger-api
这是个大项目,包括swagger-ui,swagger-editor,swagger-code_generater等等,
主要是通过符合openapi协议的定义代码去生成api文档以及代码
openapi在线编辑
https://editor.swagger.io/
可以通过swagger_code_gen去生成api层代码,会依据你的定义做数据校验