plantuml画图
手残党推荐画图工具
PlantUML,能够快速快速绘制时序图、用例图、类图、活动图、组件图、状态图、对象图、部署图等,还支持非 UML 图的甘特图、架构图等。
我最常使用的两种是时序图和流程图
时序图
@startuml
actor A as "业务端"
database B as "mysql"
collections C as "canal server"
collections D as "canal client"
collections E as "mq"
title Trigger实现
autonumber
==消息监听==
A->B:触发mysql表更新
activate A
activate B
B->C:canal server监听binlog
activate C
C->D:client消息处理
activate D
D->D:消息过滤
D->D:消息处理、组装
D->E:发往mq
activate E
deactivate D
deactivate B
deactivate C
deactivate D
deactivate E
==业务处理==
E->A:mq消息消费;
activate A
activate E
A->A:判断类型以及表
A->A:选择处理类;
A->A:处理
deactivate A
deactivate E
@enduml
流程图
@startuml
repeat
:触发mysql表更新;
:canal server接收发往client;
:canal client接收到信息;
:消息过滤;
note left
业务端代码需要监听的表
可以通过上报元数据的方式
存储在redis或者数据库中
在client端过滤掉没有监听
的表信息
end note
:消息处理;
fork
:新增消息;
fork again
:更新消息;
fork again
:删除消息;
end fork
:发往mq;
repeat while(触发数据库表变更)
@enduml