[{"createTime":1735734952000,"id":1,"img":"hwy_ms_500_252.jpeg","link":"https://activity.huaweicloud.com/cps.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905","name":"华为云秒杀","status":9,"txt":"华为云38元秒杀","type":1,"updateTime":1735747411000,"userId":3},{"createTime":1736173885000,"id":2,"img":"txy_480_300.png","link":"https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=edb15096bfff75effaaa8c8bb66138bd&from=console","name":"腾讯云秒杀","status":9,"txt":"腾讯云限量秒杀","type":1,"updateTime":1736173885000,"userId":3},{"createTime":1736177492000,"id":3,"img":"aly_251_140.png","link":"https://www.aliyun.com/minisite/goods?userCode=pwp8kmv3","memo":"","name":"阿里云","status":9,"txt":"阿里云2折起","type":1,"updateTime":1736177492000,"userId":3},{"createTime":1735660800000,"id":4,"img":"vultr_560_300.png","link":"https://www.vultr.com/?ref=9603742-8H","name":"Vultr","status":9,"txt":"Vultr送$100","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":5,"img":"jdy_663_320.jpg","link":"https://3.cn/2ay1-e5t","name":"京东云","status":9,"txt":"京东云特惠专区","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":6,"img":"new_ads.png","link":"https://www.iodraw.com/ads","name":"发布广告","status":9,"txt":"发布广告","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":7,"img":"yun_910_50.png","link":"https://activity.huaweicloud.com/discount_area_v5/index.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=aXhpYW95YW5nOA===&utm_medium=cps&utm_campaign=201905","name":"底部","status":9,"txt":"高性能云服务器2折起","type":2,"updateTime":1735660800000,"userId":3}]
准备工作
java : jre-8u131-windows-i586.exe(超过37M,无法上传)
jre-8u131-windows-i586.exe
graphviz :
graphviz-2.38.msi
vscode插件两个(直接使用插件管理器在线下载):PlantUML 和 Graphviz Preview
检查环境变量(没有的,需要手动添加系统环境变量):
C:\Program Files (x86)\Graphviz2.38\bin;
C:\ProgramData\Oracle\Java\javapath;
C:\Program Files (x86)\Java\jre1.8.0_131\bin;
VScode画图
新建一个 *.puml 文件
写入 uml code
按“Alt + d” 快捷键,生成预览:
@startuml start : 【B】根据A的决策-New AMF继续处理; if(注册拒绝) then(是) : 发送注册拒绝-结束; else
if(向UE要SUCI) : 需退化为局内注册-流程继续【C】; else if(向Old AMF要上下文) :发现 Old AMF; if(发现失败)
then(是) :退化为局内注册-流程继续【C】; else(发现成功) then(否) :向Old AMF发送UE Context Transfer
Req; if(响应成功) :局间注册流程继续 ; else if(Rsp 403) :设置完保检查失败-流程继续 【D】; else if(Rsp 404)
:退化为局内注册-流程继续【C】; else if(过负荷其他失败非部分备份的超时) :向Old AMF要上下文失败通用处理 ; endif endif
endif stop @enduml
@startuml CONSUMER_NF -> AMF_EE_CREATE_TRANS: 1. HTTP CREATE SUB REQ
AMF_COMMUNICATION <- AMF_EE_CREATE_TRANS: 2. GET SUPI or INNER CREATE SUB REQ
AMF_COMMUNICATION -> AMF_EE_TAKEOVER_TRANS: 3. 决策出来非本局用户,接管通知
AMF_EE_TAKEOVER_TRANS->OTHER_CDB: 4. 拉取other cdb数据
OTHER_CDB->AMF_EE_TAKEOVER_TRANS: 5. 拉取other cdb数据响应 AMF_EE_TAKEOVER_TRANS->
AMF_EE_TAKEOVERDELAY_TRANS: 6. 触发内部消息 AMF_COMMUNICATION -> AMF_EE_CREATE_TRANS:
7. INNER CREATE SUB RSP, 处理当前订阅流程 CONSUMER_NF <- AMF_EE_CREATE_TRANS: 8. HTTP
CREATE SUB RSP AMF_EE_TAKEOVERDELAY_TRANS-> CONSUMER_NF : 9.
此用户其他的订阅subidchange AMF_EE_TAKEOVERDELAY_TRANS-> AMF_COMMUNICATION : 10.
触发内部订阅信息更新 AMF_COMMUNICATION-> AMF_OLD_COMMUNICATION : 11. 触发接管删除
AMF_OLD_COMMUNICATION-> AMF_OLD_EE : 12. 触发接管删除 @enduml