规范设计
文章平均质量分 91
谈谈1974
火萎了,我也准备走了
展开
-
OpenSIPS 3.1 负载均衡 MRCP 服务器的实现
在使用 MRCP 功能时,FreeSWITCH 通过 mrcp profile 的名称来指定要使用的 MRCP 客户端,进而决定要连接的 MRCP 服务器。如果在脚本中配置了 dispatcher 模块的数据库地址,则 OpenSIPS 启动时会从数据库中查询数据加载到内存,读者如有兴趣可参考。执行以下 SQL 语句,往 OpenSIPS 数据库的 dispatcher 表中插入目标 MRCP 服务器地址记录。中选择对应的数据库类型目录,查找该目录下相应的表创建文件,例如。在 FreeSWITCH 的。原创 2023-05-22 18:45:00 · 1441 阅读 · 0 评论 -
MRCPv2 服务器的负载分发方案分析
但是只要 SIP 协商成功,后续 MRCP 和 RTP 交互都可以基于协商地址直接进行,因此只要做到 SIP 信令的负载分发就可以实现 MRCP 会话级别的负载。从上一节内容中我们知道 MRCP 服务器虽然要处理 3 种协议,主要用于实现 MRCP 服务端的高可用,并不能保证负载均衡。目前有2个版本,当前最常用的版本是 V2。MRCP(V2)协议。原创 2023-04-07 18:26:39 · 829 阅读 · 0 评论 -
FreeSWITCH 智能呼叫流程设计
用户与机器人对话通常都是以文本的形式进行,但是借助 ASR 和 TTS 技术,以语音电话为载体的智能呼叫系统成为可能。APP 会先打开 ASR 识别用户语音然后才放音,放音时会被用户的语音流打断。原创 2023-03-08 21:30:00 · 2098 阅读 · 0 评论 -
FreeSWITCH 呼入系统的简要设计
APP 回一个 180 给到用户终端,然后直接执行 esl 外连将 a-leg 交给目标服务器控制,由业务系统决定在 a-leg 上的响应行为。APP 桥接坐席,是因为坐席可能暂时忙其他事情直接挂断电话,这样用户会感知到对方挂断但自己这一端的电话还没有挂,影响体验。用户呼入的拨号计划示例如下,当用户呼入到 FreeSWITCH 时可以先执行。这里之所以不在 a-leg 的 outbound 连接上直接执行。原创 2023-03-03 18:15:00 · 1565 阅读 · 2 评论 -
多人在线协作实现的概要设计
文章目录1. 背景2. 设计方案2.1 方案选择2.2 方案设计1. 背景项目中存在多人在线编辑的场景,由于设计之初只是小范围人员使用,当支持的业务逐渐扩大、使用人员增多之后就暴露了许多问题,其中比较突出的是多人在线编辑画布时出现节点丢失的情况,复现的流程大致如下:问题根源首先是画布保存的粒度太大,没有细化到每一个节点,直接导致整体保存的覆盖问题。如果画布上每增加一个节点都是单独将其保存到后端数据库,自然可以避免相当多的修改覆盖的问题其次是多人编辑时,如果画布有更新,其他编辑者无法感原创 2021-12-04 12:57:09 · 1746 阅读 · 0 评论 -
缓存一致性设计方案
文章目录前言1. 缓存一致性2. 缓存一致性设计分析2.1 先淘汰缓存,再更新数据2.2 先淘汰缓存,再更新数据3. 实用方案-延时二次淘汰前言公司项目中发生了缓存一致性的问题,具体场景如下:系统的业务配置更新为生效状态后,业务服务实际使用的配置数据还是旧版本的数据偶现业务服务使用的配置数据不完整,造成业务流程异常项目中引入了缓存,排查问题时发现 redis 中缓存的数据就是旧版本数据,而且有时会发生缓存中配置数据不完整的现象。分析代码,发现导致缓存数据与数据库数据不一致的原因有两个,本文原创 2021-10-16 12:24:28 · 478 阅读 · 0 评论 -
接口限流的常用算法
文章目录1. 漏桶算法2. 令牌桶算法1. 漏桶算法漏斗2. 令牌桶算法原创 2021-04-05 10:38:26 · 791 阅读 · 0 评论 -
对外接口的设计原则
文章目录1. 接口安全性1.1 接口外部处理措施1.1.1 接口权限隔离1.1.2 接口限流1.1.3 使用 POST 请求1.1.4 数据加密传输1.2 接口内部处理措施1.2.1 记录请求日志1.2.2 参数合法校验1.2.3 调用失败告警2. 接口幂等性2.1 Token 机制2.2 全局 key2.3 数据库幂等3. 数据的规范3.1 接口版本控制3.2 响应码规范3.3 响应格式规范1. 接口安全性1.1 接口外部处理措施1.1.1 接口权限隔离1.1.2 接口限流1.1.3 使用 PO原创 2021-04-05 10:35:02 · 3132 阅读 · 0 评论