涉及到很多第三方接口,那必然会出现一些技术难题。
1.耦合性:
(1)如果第三方接口如果性能出现抖动,那必然会导致我们核心流程的性能变差。(异步解耦)
(2)如果第三方接口突然升级了,比如说原来只需要5个入参,现在需要6个入参了,那我们本地系统的多个接口也需要跟着第三方接口的升级而升级,必须配合他的新接口进行测试和部署上线,围着它转。(在接口文档中可以看到有很多新老版接口的说明,第三方接口升级是不可避免的事情)
2.原子性问题:如果第三方接口调用失败,会导致我们核心链路出现部分失败问题(分布式事务)
3.数据量过大问题:公司产品有3亿的用户量,每个用户如果要用我们的产品,都需要进行身份证、银行卡、人脸识别等信息的验证,算起来上十亿的数据量该如何存储也是我们应该考虑的问题?分库分表?hadoop、hbase?公司的老板或者运营团队,每天都需要查看我们的数据报表吧?如果在有上亿数据量的db中运行我们几百行的大SQL,性能是极低的,更重要的是,会大大消耗我们数据库服务器的CPU、磁盘IO、内存,会拖垮我们的业务程序的运行,所以我们的大数据团队才应运而生
4.稳定性:公司内部的系统,所有代码都在自己公司,你知道如何运行,出现bug的时候可以自己去解决和优化。但是对于第三方接口,我们连他是什么语言写的都不知道,更不知道他是如何实现的,更没有改动代码的权力。我们的第三方系统,随时可能奔溃或出现bug,导致说我们去调用它的时候会失败,那么我们就需要考虑如何重试了