前言
在上家公司,随着业务的不断发展,逐渐从单个国家发展到支持多个国家,自己主导设计了通用平台业务,将短信发送,推送,三方登录,预警做成平台化,极大降低了开发维护成本,支撑了业务快速发展通用业务平台设计
- 包含业务:短信,活体,推送,三方登录,预警
- 短信平台设计(参考:短信服务的设计)
- 国家-渠道编码对应
- 组装内容:
主体-模板(主体-业务类型-模板编码)
模板(模板编码,模板内容)
- 发送渠道的路由
路由(主体-是否验证类-渠道产品)
渠道
渠道产品
渠道产品明细
- 【笔记|通用业务平台设计(一):概览】路由分配: 按比例切换:往redis中扔100份,取其中一份,当量大时趋近
- 验证类/非验证类
- 短信剩余条数进行预警
- 短信财务统计
- 发送非实时短信时,定时任务升级MQ的规划
- 短信服务灰度
- 多国家后,业务平台的发布影响范围变大,防止发布风险,开发灰度平台
- 灰度标记:通过手机号,通过测试主体
- 灰度操作流程
- 更新机器通过脚本将机器从eureka上摘除掉
- 在Apollo上将更新机器的服务名设置为灰度名
- 更新发布程序
- 网关开启灰度标记(Apollo),网关会通过filter拦截,进行校验,网关相关配置文件如下:
gray.bean.suffix = _gray gray.bean.graylist[0] = wfsa_live_send gray.bean.graylist[1] = wfsa_sms_send gray.bean.checkparam[companyNo] = companyNo1; companyNo2 gray.bean.checkparam[appSign] = appSign1; appSign2
- 测试进行验证,无问题后用另外一台机器做同样验证,或直接copy到jar包过去
- 更新机器通过脚本将机器从eureka上摘除掉
- 多国家后,业务平台的发布影响范围变大,防止发布风险,开发灰度平台
- 本篇博文将通用业务设计平台的概览进行展示,在接下来的博文会为大家分享设计过程中遇到的难点及解决思路,以及对应的代码;
- 随着业务快速发展,抽离平台型业务将公共业务下沉,极大的降低开发成本同时降低了日后的维护成本,是个降本增效的好思路;
- 很庆幸自己能主导设计并全程实施,通用业务平台从无到有,从有到丰富的建设过程还是充满挑战;
- 自己最近一直在对之前做过的业务进行沉淀,总结,升华,共享,然后与大家共勉;
推荐阅读
- linux|自动化打包平台系列(一):自动化打平台建设概览
- 笔记|延时任务实践指南
- 笔记|深度学习环境搭建
- 面试指南|面试指南(三):想跳槽,这些问题你会了吗()
- 闲谈|240天,转行程序员终于成为CSDN博客专家
- 笔试题|字节跳动2021春招研发第二场笔试编程题(三)
- 笔试题|字节跳动2021春招研发第二场笔试编程题(二)
- 算法和数据结构|字节跳动 2021 春招面试高频题3
- 算法|字节跳动21春招第三场笔试算法题