利用第三方服务搭建自己的服务思考点

在公司做过搭建自己的微信红包服务和话费服务,这两样东西都有一同共同点,就是利用第三方服务来搭建属于自己的第三方服务。这让我思考着一个简单的第三方服务的搭建应该思考些什么,以便少踩坑。

调用第三方服务

失败重试机制

  • 什么怎样的失败是需要重试的
  • 重试次数以及重试间隔
  • 调用失败,订单号要记录,以便返查
  • 严重错误消息通知

调用第三方服务失败的可能性是必然存在的,而重试的意义在于确保那些不是必然失败的能调用成功, 对于那些重试后任然100%失败的,就无需重试了。例如,调用微信商户平台的红包发放接口,对于那些openid错误,发放的微信用户账户异常等错误,即便重试也必然错误,故不需要重试。但是对于,商户账户余额不足,超过红包发送接口请求频率等错误,就必须要重试。

注意第三方服务接口限制

  • 频率
  • 次数

第三方服务的接口调用一般来说,都会有所限制,一定一定要了解清楚,避免踩没有必要的坑。例如,微信商户平台红包发送接口的限制有: 金额限制,频率限制,个数限制,写代码时需要添加上这些限制,避免大规模的调用失败。

考虑会更改第三方服务的情况

  • 确定自己的错误码以及状态码,与第三方服务的错误码和状态码解耦
  • 利用接口和多态来进行第三方服务SDK的编写

若第三方服务商是可选的,在做数据模型以及代码的编写时就要考虑更换第三方服务商的情况。这时需要分析与第三方服务耦合的内容有哪些。例如,每个第三方服务都会有自己的错误码和状态码,此时就需要建立将第三方的错误码和状态映射到自己系统的错误码和状态码。当然对于像微信红包发送这样的不可替换的第三方服务,可以不用考虑这些问题,降低复杂度。

自己提供给客户接口

权限,安全与限制

  • 接口调用需要签名校验
  • 回调给客户的需要做签名, 给客户做签名校验
  • 频率,次数的限制

既然是提供给客户调用,必然涉及到身份校验。调用者身份的校验,一般来说是通过key,secret来做签名,必要可以IP,甚至是证书。校验是双向,若提供接口调用的回调,需要提供本服务的身份信息,以便客户进行校验。

结果通知机制

  • 提供API查询
  • 回调(注意,回调也有重试)

一般来说,提供给客户调用的服务接口的处理是异步的,这意味着结果是延迟才能知道。此时就需要有,结果通知机制。总的来说机制就两种,1. 作为服务提供者主动返回(回调) 2. 服务使用者主动查询(提供结果查询API)

订单号

  • 客户提供的订单号
  • 自己系统的订单

订单号需要考虑:

  1. 唯一性,订单号的最主要的作用是为了查询,故不能重复。

  2. 安全性,不要把重要的运营信息(例如交易量)添加到订单号上,以免别人猜到的重要运营信息。

  3. 防并发,确保高并发时不会产生一样的订单号(编码中有时间的话,添加上随机数即可)

  4. 位数,位数多有助于提高唯一性,安全性,并发性,但稍微订单查询场景难度,比较位数多复制起来比较麻烦

  5. 性能,检索性能和生成性能。检索性能的提高可以采用纯数字,数据库的索引和检索效率比文本高。生成性能的提高可以采用预先生成订单,即建立订单池。

常见的订单号生成规则:

  1. 年月日时分秒微秒+随机码
  2. 用户标识+年月日+一天内不能重复的数字
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,861评论 6 13
  • 来源与:阿里云栖 禁止用于商业用途 ps:如果需要电子书 评论你们邮箱 我会发给你们 下面感觉还是有点乱 目录 一...
    小向资源网阅读 7,572评论 0 12
  • 2017年4月24日,我开始了人生中实习的第一天,由于14个实习生住在一起且只有一个卫生间,尽管8:30才上班,却...
    壹壹悦读阅读 2,937评论 3 4
  • 文/鸿运 时隔百年故地游 青山不见变秃丘 蓝天白云哪里去 黄河干枯无水流
    HONGYUNDANGTOU阅读 161评论 2 10