和很多互联网业务一样,考拉刚开始的架构非常简单,只有线上、线下、管理、后台和缓存服务,更多考虑的是实现业务功能,并没有太多的考虑服务拆分、解耦、服务化这些方面。因为当时第一要务是把服务上线,很多问题可以后面再改。这些功能对于一个从 0 开始的电商平台来说已经够用了。
在刚开始的一段时间里,开发主要是满足业务的需要,不停地增加功能、服务。后来随着商品、用户越来越多,架构也越来越臃肿,业务的需求慢慢也满足不了了,一些大促、秒杀活动高并发的需求也不能满足。主要问题是:
每个服务耦合了太多的业务逻辑。以线上服务为例,前台的商品,下单,素材,活动等都在一个工程,多个功能被耦合在了一个类,甚至一个方法中
并行开发困难,不同需求不同分支的功能会经常修改同一块代码,对多个模块产生影响
核心业务与非核心业务耦合,在关键时候互相影响。比如后台的通关数据曾经就影响了核心的支付业务;线上的优惠券兑换热点数据问题,影响了核心下单业务
于是就开始了对现有架构服务化改造。每个功能指定专门的负责人,让具体的功能开发负责具体的模块设计,内部实现对外透明,只需要保证接口正确。
当然,架构的服务化也是要根据实际业务情况做的。比如跨境电商和传统电商相比,在仓储、物流、通关的流程要复杂的多,因此进销存服务被拆分了出来。另外,版本的发布越来越多,频率越来越快,原来手动发布的方式不仅慢,而且容易出错,因此自动部署系统的开发上线就会极大地提高版本发布的效率。
经过服务化改造后,虽然上线次数变多,但单次上线的需求减少了,时间缩短了,影响面也变小了,风险越来越可控。
然而,对于开发来讲,最主要的任务还是开发业务系统,支撑业务系统的基础服务虽然也非常重要,但是需要投入很大的人力和精力去做。因此考拉开始采用网易云的服务,减少重复造轮子的情况。
考拉每天产生的图片和视频有上百 G,需要稳定且容易扩展的文件系统,因此使用了网易云的对象存储服务,很轻松地解决了海量文件存储的问题。对于数据库,考拉采用了网易云的分布式数据库,比起原来的 Oracle 扩展性要好很多。
随着业务规模的继续扩大,提供的服务越来越多,比如支付、第三方接口、移动端的服务等都独立出来,服务拆分的也越来越细,目前已经有上百个服务。这时也开始接入更多网易云的服务,例如搜索、反垃圾、消息队列。
对于电商来说,“6.18”、“11.11”这些传统的电商大促会给系统带来很大的挑战。考拉在处理高并发的实践中也积累了很多经验,比如开发提炼出的系统稳定 4 原则:
不要相信任何开发
这一条的意思是一定要保留老版本,一旦新版本发现有问题,确保随时可以回滚到工作正常的老版本。
不要相信任何测试
不论线下怎么测试,上线以后还是有可能出问题。因此需要做灰度发布,新版本先开放给一小部分用户进行真实测试,没问题再向所有用户开放。
不要相信任何应用
任何应用都可能崩溃,必要的时候做服务降级和限流,以保证核心业务可用。
不要相信任何硬件
业务做跨机房部署,进行容灾。
另外,对于高并发场景,考拉也积累了不少经验。其中几条比较重要的是:
对一些流程做异步化
比如支付报关、优惠券派发、订单通知都可以做异步化,这样可以减少高并发时某些模块的压力。这里考拉使用了网易云的消息队列服务,确保发送出来的消息一定会被送达。
缓存静态化
在大促活动的时候,对于首页、商品详情页、活动落地页需要做静态化并放到缓存中以应对短时间内海量的访问请求。
对安全方面的保障,电商平台也十分重视,比如常见的刷单、DDoS 攻击、H5 劫持等。为应对这些挑战,考拉选择了网易云安全(易盾)产品进行秒杀防刷、H5 反劫持、下单反垃圾、活动反垃圾、高频请求拦截、防 DDoS 攻击等,为考拉的应用提供了全面的安全保障。
此外,随着直播的兴起,考拉也开始有一些直播购物的活动,考拉选择了网易云通信与视频服务,只花了几天时间做了简单对接就可以立即提供视频直播服务来吸引用户。
还有一点,用户量越来越多带来的另一个问题是客服的压力大增。尽管考拉有上百人的客服团队,但仍然处于超负荷运转状态,尤其是在一些大促活动前后,几乎需要通宵加班来应对用户咨询。考拉采用了网易云的七鱼智能客服,大量常见问题通过客服机器人进行回答,大大节省了人工客服的时间和精力。
考拉从创立到成长为国内进口销售额第一的跨境电商平台,技术上遇到了各种挑战,技术团队能根据业务情况快速调整系统架构是考拉能轻松应对各种业务增长带来的系统压力的一个很重要的保障。另一方面就是技术团队很好地利用了现有的云服务,而不是选择自己去开发所有服务,既节省了开发的成本,又免去了运维的成本,从而才有更多精力去打磨业务系统,更好更快地满足业务提出的需求,推动业务向前发展。
浏览4110次
浏览6963次
浏览5137次
浏览2098次
浏览6365次
浏览7401次
2025-01-08 昆明
2025-04-19 南京
2024-12-27 上海
2025-10-23 上海
打开微信扫一扫,分享到朋友圈