笔记|通用业务平台设计(一):概览

前言

在上家公司,随着业务的不断发展,逐渐从单个国家发展到支持多个国家,自己主导设计了通用平台业务,将短信发送,推送,三方登录,预警做成平台化,极大降低了开发维护成本,支撑了业务快速发展
通用业务平台设计
  • 包含业务:短信,活体,推送,三方登录,预警
  • 短信平台设计(参考:短信服务的设计)
  • 国家-渠道编码对应
  • 组装内容:
    主体-模板(主体-业务类型-模板编码)
    模板(模板编码,模板内容)
  • 发送渠道的路由
    路由(主体-是否验证类-渠道产品)
    渠道
    渠道产品
    渠道产品明细
  • 【笔记|通用业务平台设计(一):概览】路由分配: 按比例切换:往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包过去
总结
  • 本篇博文将通用业务设计平台的概览进行展示,在接下来的博文会为大家分享设计过程中遇到的难点及解决思路,以及对应的代码;
  • 随着业务快速发展,抽离平台型业务将公共业务下沉,极大的降低开发成本同时降低了日后的维护成本,是个降本增效的好思路;
  • 很庆幸自己能主导设计并全程实施,通用业务平台从无到有,从有到丰富的建设过程还是充满挑战;
  • 自己最近一直在对之前做过的业务进行沉淀,总结,升华,共享,然后与大家共勉;

    推荐阅读