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