原文地址:https://blog.csdn.net/wangyiyungw/article/details/80350279

网易考拉海购已顺利度过了 2017 年的双十一、双十二等大促活动,销售额达到了 2016 年的四倍。那么,在技术架构层面,考拉是如何支持如此快速发展的业务呢?网易考拉海购首席架构师谢骋超为您解密《网易云上的第一跨境电商技术架构》。

网易考拉海购首席架构师 谢骋超

和很多互联网业务一样,考拉刚开始的架构非常简单,只有线上、线下、管理、后台和缓存服务,更多考虑的是实现业务功能,并没有太多的考虑服务拆分、解耦、服务化这些方面。因为当时第一要务是把服务上线,很多问题可以后面再改。这些功能对于一个从 0 开始的电商平台来说已经够用了。

在刚开始的一段时间里,开发主要是满足业务的需要,不停地增加功能、服务。后来随着商品、用户越来越多,架构也越来越臃肿,业务的需求慢慢也满足不了了,一些大促、秒杀活动高并发的需求也不能满足。主要问题是:

  • 每个服务耦合了太多的业务逻辑。以线上服务为例,前台的商品,下单,素材,活动等都在一个工程,多个功能被耦合在了一个类,甚至一个方法中
  • 并行开发困难,不同需求不同分支的功能会经常修改同一块代码,对多个模块产生影响
  • 核心业务与非核心业务耦合,在关键时候互相影响。比如后台的通关数据曾经就影响了核心的支付业务;线上的优惠券兑换热点数据问题,影响了核心下单业务

于是就开始了对现有架构服务化改造。每个功能指定专门的负责人,让具体的功能开发负责具体的模块设计,内部实现对外透明,只需要保证接口正确。

当然,架构的服务化也是要根据实际业务情况做的。比如跨境电商和传统电商相比,在仓储、物流、通关的流程要复杂的多,因此进销存服务被拆分了出来。另外,版本的发布越来越多,频率越来越快,原来手动发布的方式不仅慢,而且容易出错,因此自动部署系统的开发上线就会极大地提高版本发布的效率。

经过服务化改造后,虽然上线次数变多,但单次上线的需求减少了,时间缩短了,影响面也变小了,风险越来越可控。

然而,对于开发来讲,最主要的任务还是开发业务系统,支撑业务系统的基础服务虽然也非常重要,但是需要投入很大的人力和精力去做。因此考拉开始采用网易云的服务,减少重复造轮子的情况。

考拉每天产生的图片和视频有上百 G,需要稳定且容易扩展的文件系统,因此使用了网易云的对象存储服务,很轻松地解决了海量文件存储的问题。对于数据库,考拉采用了网易云的分布式数据库,比起原来的 Oracle 扩展性要好很多。

随着业务规模的继续扩大,提供的服务越来越多,比如支付、第三方接口、移动端的服务等都独立出来,服务拆分的也越来越细,目前已经有上百个服务。这时也开始接入更多网易云的服务,例如搜索、反垃圾、消息队列。

对于电商来说,“6.18”、“11.11”这些传统的电商大促会给系统带来很大的挑战。考拉在处理高并发的实践中也积累了很多经验,比如开发提炼出的系统稳定 4 原则:

  • 不要相信任何开发

这一条的意思是一定要保留老版本,一旦新版本发现有问题,确保随时可以回滚到工作正常的老版本。

  • 不要相信任何测试

不论线下怎么测试,上线以后还是有可能出问题。因此需要做灰度发布,新版本先开放给一小部分用户进行真实测试,没问题再向所有用户开放。

  • 不要相信任何应用

任何应用都可能崩溃,必要的时候做服务降级和限流,以保证核心业务可用。

  • 不要相信任何硬件

业务做跨机房部署,进行容灾。

另外,对于高并发场景,考拉也积累了不少经验。其中几条比较重要的是:

  • 对一些流程做异步化

比如支付报关、优惠券派发、订单通知都可以做异步化,这样可以减少高并发时某些模块的压力。这里考拉使用了网易云的消息队列服务,确保发送出来的消息一定会被送达。

  • 缓存静态化

在大促活动的时候,对于首页、商品详情页、活动落地页需要做静态化并放到缓存中以应对短时间内海量的访问请求。

对安全方面的保障,电商平台也十分重视,比如常见的刷单、DDoS 攻击、H5 劫持等。为应对这些挑战,考拉选择了网易云安全(易盾)产品进行秒杀防刷、H5 反劫持、下单反垃圾、活动反垃圾、高频请求拦截、防 DDoS 攻击等,为考拉的应用提供了全面的安全保障。

此外,随着直播的兴起,考拉也开始有一些直播购物的活动,考拉选择了网易云通信与视频服务,只花了几天时间做了简单对接就可以立即提供视频直播服务来吸引用户。

还有一点,用户量越来越多带来的另一个问题是客服的压力大增。尽管考拉有上百人的客服团队,但仍然处于超负荷运转状态,尤其是在一些大促活动前后,几乎需要通宵加班来应对用户咨询。考拉采用了网易云的七鱼智能客服,大量常见问题通过客服机器人进行回答,大大节省了人工客服的时间和精力。

考拉从创立到成长为国内进口销售额第一的跨境电商平台,技术上遇到了各种挑战,技术团队能根据业务情况快速调整系统架构是考拉能轻松应对各种业务增长带来的系统压力的一个很重要的保障。另一方面就是技术团队很好地利用了现有的云服务,而不是选择自己去开发所有服务,既节省了开发的成本,又免去了运维的成本,从而才有更多精力去打磨业务系统,更好更快地满足业务提出的需求,推动业务向前发展。

网易云提供相关服务,如RDS、反垃圾等,感兴趣的朋友可以点击免费试用。

了解 网易云 :

网易云官网:https://www.163yun.com/

新用户大礼包:https://www.163yun.com/gift

网易云社区:https://sq.163yun.com/

网易考拉海购:电商高并发架构设计的铁律相关推荐

  1. 网易考拉海购更名网易考拉 全面进军综合电商市场

    近日,国内领先的跨境进口零售电商平台网易考拉海购宣布更名为"网易考拉",正式宣告进军综合电商市场.与品牌更名同步,"网易考拉"全新的 品牌标识及全新Slogan ...

  2. 小红书竞品分析_小红书与网易考拉海购竞品分析报告

    近几年来,国内电商在政策利好形势下纷纷兴起,经过数轮洗牌,已然处于相对稳定的局面.有天猫国际.网易考拉海购.京东全球购等依靠大型集团公司的综合性跨境电商平台,也有小红书.唯品会等在激烈竞争中生存下来的 ...

  3. 网易考拉海购Dubbok框架优化详解(学习笔记)

    微服务化是当前电商产品演化的必然趋势,网易考拉海购通过微服务化打破了业务爆发增长的架构瓶颈. 微服务选型要评估以下几点: 内部是否存在异构系统集成的问题: 备选框架功能特性是否满足需求: http协议 ...

  4. 网易考拉海购Dubbok框架优化详解

    网易考拉海购Dubbok框架优化详解 摘要:微服务化是当前电商产品演化的必然趋势,网易考拉海购通过微服务化打破了业务爆发增长的架构瓶颈.本文结合网易考拉海购引用的开源Dubbo框架,分享支持考拉微服务 ...

  5. 科箭TMS云,助力网易考拉跨境电商物流云平台

    8月11日,科箭软件和网易考拉海购合作上线国内首个跨境物流云平台--网易考拉物流云.通过网易考拉物流云的上线,网易考拉将开始大规模部署智能化管理系统"祥龙"和云TMS系统" ...

  6. 简单几步骤导出网易考拉海购中多个商品的图片

    最近有很多朋友在问,怎么保存网易考拉海购中的商品图片呢?有没有简单一点的方法可以一次性采集多张图片呢?小编的回答当然是可以的,下面一起来试试. 所需工具 下图高手 网易考拉海购 操作步骤 打开网易考拉 ...

  7. 网易考拉海购Java开发面经(已拿offer)

    2019独角兽企业重金招聘Python工程师标准>>> 网易的面试是在8月23日进行的,说是三面,但hr面的时候面了两次,后来得知好像是主管面,所以实际上是四次面试,两轮技术面+主管 ...

  8. 网易考拉海购软件测试岗怎么样,【网易考拉海购前端开发工资待遇怎么样】-看准网...

    一面: 1.自我介绍. 2.讲自己最熟悉的项目,测试流程说一下,测试的产品介绍一下.讲了自己实习时候做的测试工作. 3.写个代码,很简单,字符串处理 遍历字符串,输出前面几位,字符串替换. 4.MyS ...

  9. 网易考拉海购软件测试岗怎么样,【网易考拉海购运营专员面试】面官态度倨傲,社区理念不明,995工作,很不推荐-看准网...

    一面: 1.自我介绍. 2.讲自己最熟悉的项目,测试流程说一下,测试的产品介绍一下.讲了自己实习时候做的测试工作. 3.写个代码,很简单,字符串处理 遍历字符串,输出前面几位,字符串替换. 4.MyS ...

最新文章

  1. java反射用在哪里_Java反射
  2. python如何将图片的像素矩阵绘制成图片(python,matplotlib):TypeError: Invalid shape (1, 28, 28) for image data
  3. 一键清理 Nexus 中无用的 Docker 镜像
  4. 【数学基础】算法工程师必备的机器学习--线性模型(上)
  5. android user版本默认开启调试模式
  6. HTML 网页页面切换的各种变换效果
  7. 【520有奖征文】 老同学聚会,20年IT行业从业感悟
  8. Python风格总结:模块调用
  9. 一步设置Intellij IDEA 热部署处理方法
  10. (四)语音识别测试案例
  11. Python字符串isalnum()
  12. EXCEL VLOOKUP函数的使用
  13. 第二章:JAVA编程基础
  14. Unable to find models.User with id xx
  15. Word一般文章格式
  16. 求助,nodejs 在安装threads_a_gogo时报错
  17. css实现气泡框小尾巴
  18. 自旋锁使用场景和实现分析(转载)
  19. 微信Web工具可以打开网页,用微信客户端就打不开了
  20. Windows 服务程序(一)

热门文章

  1. 洛谷P1008 三连击
  2. springboot全局异常处理BasicErrorController和RestControllerAdvice
  3. Linux实战教学笔记28:企业级LNMP环境应用实践
  4. 奶牛慢跑 (寒假每日一题 18)
  5. kali linux 软件包密钥管理
  6. 姓氏头像框一键制作小程序源码
  7. Java单元测试实践-06.Mock后Stub静态方法
  8. 惠普彩色激光打印机CM1312送稿台卡纸不能消除解决办法
  9. 小猿圈Java讲师分享开发9年Java进阶大全
  10. 用python实现等额本息