1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| 标题:于哥--- IAMMGR热点组播播功能、及组播N+1功能的大致业务流程 以下为IAMCR热点组播功能、及组播N+1功能的大致业务流程说明,作为测试参考,内部细节以实际测试为准。 一、Live Multicast N+1功能说明: 主要功能: 组播设备心跳监测、 组播设备切换及恢复(正常转异常、超时异常、状态防抖、异常恢复正常、MAER全清接口) MABR单播频道哈希迁移、 子码率组播计划自动重建(组播IP及端口按地址段自动分配)、 异常恢复在指定时间段内回迁、 WEB频道手动哈希创建。
大致业务流程: 1. IAMWEBR页面资源树增删改 Livemulticastl设备,触发 IAMREST设备列表自动同步v_livemulticast 2. IAMRES定时向U2M设备发送心跳请求,U2M设备返回心跳响应(含设备状态 statel以及自身频道表的记录数mabrnum) IAMRES收到心跳响应后,更新 IAMRES内存中的设备状态,同时更新数据库中的设备状态state:0-异常,1-正常。 t_ottheartstate 3. IAMRES根据组擂设备心跳采集情况,判断组播设备是否发生状态切换(正常转异常、状态抖动、异常转正常、设备扩容)。 当正常设备转为异常设备时,更新内存中的设备状态及哈希设备列表,生成N+1哈希计划t_ otthashtask。
当异常设备转为正常设备时,如果心跳响应中的频道记录数不为0,则 IAMRES首先触发待恢复设备的频道全清 t_mabrclntask。 待该组播设备返回的心跳响应状态正常且頻道记录数为0后,IAMRES再将其设备状态切换为正常,更新内存中的设备状态及哈希设备列表,生成N+1哈希计划 t_otthashtask 4.IAMRES定时扫描哈希计划,发送哈希计划请求给IAMTV,同时将异常设备的组播地址记录在禁用列表中 t_mabrforbid 5. IAMTV收到哈希计划请求,生成全量单擂频道的哈希任务 t_hashmabrtask。 IAMTV扫描单播频道哈希任务下发给工 IAMRES, IAMRES调用哈希算出接口计算出目标设备ID并返回给 IAMTV
6.IATv根据频道哈希结果,剔除不需要重建的频道,只生成需要迁移的频道创建任务t_ mabrchantask。 同时记录需要迁移的组播计划t_hashcastplan\t_hashcastinfo(只迁移待组播的和组播中的) 7.IAMTV定时扫描频道创建任务t_mabrchantask,下发给IASI。由IAMSI将频道创建请求下发给u2m设备。 U2M设备返回频道创建结果及频道子码率列表。
8.IAMTV根据频道创建结果 t_mabrchannel\t_chanbitrate,来生成对应子码率的组播计划重建任务t_multicastplan(组播地址及端口重新获取)。 如果频道为迁出,则同时对已迁出频道的U2M设备下发对应channelid的频道删除任务t_marchantask 9.IAMT描组播计划t_ multicast1an,经IAMSI下发组播计划设置任务给U2M设备,U2M设备返回组播计划设置任务响应。 10.U2M设备向IAMSI上报组播启动结果及停止结果。 IAMTV安照组播启停结果及时更新组擂MAP列表t_multicastlist,由IAMNI向IAMWEB发送频道列表变更通知。 IAMWEB将MABR频道数据同步给RR设备及U2M设备。 MAP列表同步记录可在WEB页面-->场景化配置向导-->配置下发查询页面中进行查询
11.IAMTV将MABR迁移失败的单播频道和组播计刘记录在t_iamalarm
12.总结 N+1功能全流程主要IAM表: v_livemulticast==>t_ottearstate==>t_otthashtask==>t_hashmabrtask(t_mabrforbid)==>t_mabrchantask(t_hashcastplan\t_hashcastinfo)==>t_mabrchanel (t_chanbitrate\t_iamalarm)==>t_multicastplan(multicastinfo\t_iamalarm)==>t_multicastlistm=>结束
N+1功能全流程主更IAM日志: 心跳及哈希倒换流程:zxtool send 226 65535;tail -f iamres.iam.log|grep -E "HashSwith"; 频道及组播计划下发:tail -f si.iam.log; 组播MAP列表同步通知:tail -f iamni.iam.log;
二、LiveMulticast MABR热点码率组播功能说明: 主要功能: 频道热点码率采集。 热点组播计划生成。 组播地址及端口自动分配
大致业务流程: 1.IAMWEB页面创建MABR单播频道t_mabrchannel(t_chanbitrate)。 U2M设备在频道创建成功时,向IAMSI上报频道子码率列表。 IAMSI按照频道子码率bandwidth进行排序,生成子码率序号bandid,入库。 IAMWEB在频道MAP列表同步时,将子码率号bandid、子码率区间bandmin、bandmax,同步给RR设备和U2M设备。
2.用户请求单播频道,Agent将频道子码率bandwidth的在线用户数通过心跳接口上报RR。
3、RR将各频道子码率的在线用户数,按照在在码率序号bandid(子码率区间bandmin、bandmax)作累加、统计。
4、IAMCACHE定时向RR设备发起热点频道数据采集请求(默认5分钟采集一次,WEB页面进行配置修改)。
5、RR将热点频道子码率数据返回给IAMCACHE。
6、IAMCACHE将热点频道子码率列表入库t_mabrhotchan。 7.IAM定时处理热点频道数据t_mabrhotchan,按照子码率序号 bandid,生成对应应子码率bandwidth的热点组播计划t_multicastplan(t_ multicastfo) 默认每2分钟定时处理一次,通过 Crontab定时任务进行修改。 (1)热点组播地址及端口按照MABR组播地址段 t_mabrippool自动分配(跳过禁用组播IP),热点组播计划时长默认1个小时,页面可配。 组播地址获取规则: 按IP段最大优先的顺序,遍历IP地址段,获取IP 若IP可用不冲突,则循环遍历使用IP,对端口仅作自动加1。 若IP不足,则遍历端口寻找可用的ip:port,如果ip:port不足,则返回失败。 (2)IAM时按照时间半衰减的规则,在生成热点组播计划时校验是否存在对应时间段的冲突的组播计划:如果60分钟内存在冲突的组播计划,则校验30分钟内是否存在冲突,否则校验15分钟内是否存在冲突,如果依旧冲突则认为组播计划已存在,不生成热点组播 如果存在冲突的组播计划,则检查冲突的组播计划是否即将结束,如即将结束则自动修改组播计划,延长其组播时间。 如果不存在时间冲突的组播计划,则生成新的热点组播计划。 (3)对于DASH热点组播和MSS热点组播,会首先生成音频组播循环计划,再生成对应热点码率的视频组播单次计划。音频组播计划按频道唯一。 对于HLS热点组播,直接生成对应热点码率的视频组播单次计划。 8.IAMTV时扫描组播计划t_ multicastplan,经IAMSI下组描计划设置任务,U2M设备返回组播计划设置任务响应。 9.U2M设备向 IAMSI上报组播启动结果及停止结果。 IAMTV按照组播启停结果及时更新组播MAP列表 t_multicastlist,由IAMNII向 IAMWEB发送频道列表变更通知。 IAMWEB将MABR频道数据同步给RR设备及U2M备。 MAP列表同步记录可在WB页面->场景化配置向导一配置下发查询页面中进行查询
10.总结 热点组播功能全流程主要IAM表: t_mabrhotchan=(t_multicastplan(t_multicastinfo\t_mabrippool\t_chanbitrate)==>t_multicastlist==>结束 热点组播功能全流程主要IAM日志: MABR热点码率采集: zxtool send 242 65535;tall -f cache.iam.log| grep -E“Hotchan"; 频道及组播计划下发:tail -fS1.1am,1og 组播AP列表同步通知:tai1-f1amn1.iam.1og
|