高可用短信路由
2021-11-06 13:30:48 3 举报
短信智能路由和分发
作者其他创作
大纲/内容
APP-2
3
APP-1
RBAC通用权限数据模型定义领域
初始化
用户公司维度
短信请求4(语音)
用户A#工作-N
初始化统一状态码
用户A#N-3
初始化通道配置
用户A#账号A
用户A#N-2
用户A#地址-N
用户账号
用户A#N-1
关联操作产生account_role
1.先有账号,现实世界中的人去注册一个叫A的应用,会得到一个账号(A应用会为其生成一个账号,这个账号下所由的数据都应该关联到这个应用(appid)2.接着要为这个账号分配一些权限(授权),在分配权限之前需要为A应用定义出角色模型和资源模型,这样才可以通过授权给当前账号有哪些角色,因为不同的角色又对应不同的资源(标准RBAC)3.此时以上的场景中是一个应用,当有多个应用时应该怎么办?一个很实际的问题是一个公司有多个应用,难道每个应用都需要去创建一次账号,完成一次授权,完成一次实名认证?那么这对用户是多么的不友好!对一个公司来说系统的数据又是有多么的冗余?还有其他一些场景,比如商业化,我们的服务是否能为其他行业赋能?因此基于以上的这些问题,你是否也有了答案?4.租户的设计理念也因此产生,软件即服务,这里的解决方案是,此时账号可以去申请为租户(基于能力的扩展),即当前账号ID关联了一个租户ID,也可由该账号完成实名认证之后,并且完成了用户公司维度信息的认证并为其生成一个商户号,用这个商户号去产生一个租户(比较严谨和符合客观世界一点),账号和或用户公司和租户是1:1的关系5.最后是通过saas化动作完成租户和应用的关联,一个tenantId对应多个appId(一个租户可对应对多个应用,一个应用是一系列的资源的集合),一个账号在一个应用下(每一个应用有自己可以独立的权限体系,通过appId唯一标识)一个应用在一个租户下,一个租户依托于一个用户。
短信请求3(营销)
通道状态码channel_status
应用A#权限标识-n
渠道商3
应用C
本质上可以直接申请成为租户,但一般会有一些条件约束即,申请成为租户需要完成实名认证,同时需要完成用户公司维度的信息认证系统会为其生产一个商户号,用改商户号去创建一个租户,这个也可以直接粗暴的由账号来触发创建
移动运营商1
短信请求2(营销)
7
......
用户A#N-N
用户A#工作-1
业务1
用户A#公司-N
云平台-SAAS
account-3
4
应用C#API-1
渠道3-行业短信发送器
时效性数仓
用户中心/用户实体通用模型领域
维度1
应用A#角色A
account-1
SAAS化
2
account-2
用户N#ID标识
短信服务
一个用户可以有多个账号
应用A#权限标识-1
用户A#工作-3
1
用户C#ID标识
那个租户,使用那个通道,发送那个签名的短信
通道配置channel_properties
开始
配置租户短信实列msg_instance
联通运营商1
渠道2-行业短信发送器
云平台-用户模块
那个通道,支持那种类型的发送接口,以及该接口相关的配置(重试次数,价格,参数列表等)
租户C
用户A#工作-2
渠道2-营销短信发送器
异步写入es
应用模块
各业务job抽取自己想要的数据
消息JOBmsg_job
短信请求1(行业)
MQ消费执行发送消息
单向主动营销
账号A
回调流程:
租户N
号码提取规则msg_rule
数据动态分片
短信请求N(......)
用户A#公司-3
用户工作维度
注册
5
配置流程:1、管理端:创建通道实列->根据通道实列创建通道发送器->根据通道实列创建通道状态码->根据通道实列创建通道配置->根据通道实列创建通道签名2、租户端:创建消息平台接入账号->定义短信模板(可选)->定义短信指令(可选)->定义号码提取规则(可选)->构建消息接入申请(提交申请)->创建消息合同调用方信息(甲方)3、管理端:审核消息接入申请(查看app 的应用场景是否和签名符合等)->创建消息JOB(可选)->创建消息合同完成服务提供方信息字段(乙方)->根据签名勾选支持的通道创建通道签名->根据通道签名和通道发送器配置消息实列->以短信或邮件的方式通知租户端span style=\"font-size: inherit;\
应用中心
应用市场
短信指令定义msg_directive
租户-云平台-SAAS
账号B
用户B#账号C
租户A#应用B
业务系统
渠道1-语音短信发送器
应用A#角色N
菜单列表
根据分片结果串行/并行发送
消息平台账号msg_account
进入数仓分析
根据类型选择发送器列表
租户B#应用A
用户A#账号B
短信模板定义msg_template
用户N#账号N
MQ生产生成发送消息
MSG-ENGINE/消息引擎
6
外部引流(营销)
三类用户
用户N个维度
云平台-权限模块
渠道2-语音短信发送器
电信运营商2
创建实列定义channel_instance
租户A#应用A
业务3
应用角色模型 定义
渠道商2
user-2
关联操作产生role_premission
用户中心
运营商2渠道商2
应用A#API-N
渠道1-行业短信发送器
渠道1-营销短信发送器
APP-3
确认模式:随机 权重 智能
尽实时跟新各维度数据
用户A#地址-3
dispatch
消息合同msg_contract
应用B
应用C#权限标识-1
开发者平台
运营商1渠道商1
获取应用服务
业务2
租户应用列表
数据流量来源
子集
维度3
短信请求5(行业)
应用资源模型 定义
反馈校验时效性
账号N
应用权限标识模型 定义
APP-4
应用N
账号中心
通道确认并完成MsgModel封装
对响应计算处理记录及切换逻辑
用户A#地址-2
授权-2
维度2
根据表达式或EL代理抽取发送的数据
路由运营商
双向
租户B
用户A#ID标识
云平台-账号模块
二类用户
租户A
应用C#角色A
第三方合作
申请成为租户
关联操作产生role_resources
同步/异步响应
渠道3-营销短信发送器
用户A#地址-1
唯一账号序列
通道发送器channel_sender
一般条件
租户
用户B#ID标识
四类用户
授权-1
渠道3-语音短信发送器
通道实列定义
授权逻辑
运营商3渠道商3
用户A#公司-2
那个通道,支持那种类型的签名channel_no msg_typ sign
一类用户
通道签名(指定类型)channel_signature
渠道商1
初始化类型发送器
用户地址维度
用户A#公司-1
应用A
调用短信服务
8
消息接入申请msg_apply
0 条评论
下一页