抬头讲零售 | 浅谈电商系统的微服务架构
Posted 抬头讲零售
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抬头讲零售 | 浅谈电商系统的微服务架构相关的知识,希望对你有一定的参考价值。
电子商务发展了这么多年,随着618,双十一的交易额不断的刷新纪录,电商平台的系统架构也在不断升级。以京东商城为例,从ASP到C#.NET,再到JAVA,从传统的RPC webservice,ice,hession到简单服务治理saf,再到jsf 1.0,2.0……我们经常会用在高速行驶的过程中换轮胎来进行比喻。
以上这些名词我是听我们架构师说的,说实话我也不太懂。今天我们来聊点技术的东西,聊聊什么是电商平台微服务架构。
什么是微服务架构?
我们常用的一个软件或系统,一般是跑在一个电脑上,就像我现在再用office在我的电脑上打这段话,这一般称为单机部署。如果有些系统比较大,对计算等服务器需求比较高,那么就需要把系统部署在多个服务器上,这一般称为集群部署。集群部署和单机部署在软件的代码层面是没有区别的,是把本来部署在单机上的代码,在每个服务器上度部署一套,一般通过负载均衡来进行工作分配和调节。
随着服务器的增加,慢慢会发现通过增加服务器不能再增加系统能力,这时候就需要把系统的功能进行拆分,把不同的模块部署在不同的服务器上,这就是分布式部署。
所谓的微服务架构,是在分布式部署的基础上,更加强调部署模块的独立性(自治)。每个模块都提供离散,自治的服务能力,这里面参考了SOA的思路。各个服务可以独立应用,也可以系统应用。
举个例子比喻微服务
来来来,举个例子吧,你开了一家饭店,请了一个厨师烧菜,这个可以理解为单机部署。随着业务量增加,一个厨师忙不过来了,又请了几个厨师,大家都负责烧菜,同时请了个领班,负责分配前台的订单由哪位厨师来做,这就是集群部署,这个领班就是负载均衡。随着业务量继续增长,把做菜的流程进行了细化,有洗菜的,有切菜的,有炒的,有炸的,有煮的,有摆盘的等等,这样就形成了分布式架构,虽然流程分块了,但提供给客户的最终还是做好的菜,是一个整体。再进一步,你的企业越来越大,洗菜的专门成立了洗菜公司,切菜的专门成立了食材公司,炒菜的专门成立了炒菜公司等等,每个公司都有独立运营能力,可以独立的售卖产品,这些产品即提供给自己的上下游企业,也可以提供给其他企业,这就形成了整个微服务架构。
微服务的服务
一个大型的系统往往包含有很多的应用,应用和应用之间存在着相同的业务,通过微服务架构,将业务与应用分离,使业务不再属于某个应用,而是作为一个服务来进行单独维护。
举个例子,在电商系统中,用户是非常核心的且基础的,可以单独拆出来作为一项服务。用户可以从PC,APP等多个前端登入,都需要访问用户数据;在后端结算,评价时,同样需要调用用户。所以用户可以作为一个单独的服务,来服务各种应用场景。电商业务可以天然的划分为若干个微服务,如大块上说,可以有首页,商详页,商品,用户,购物车,订单,结算,支付,物流,评价等等。
两大开源微服务框架
京东目前使用的JSF还没有完全对外开放,Spring Cloud 与Dubbo是目前国内应用最广的两个微服务架构,对于我们来说,知道如下几点就可以了。
Dubbo是阿里的,主要服务于阿里的相关公司,并开源提供。Spring Clould是国外完全开源的,是Spring家族的一员。
Dubbo实现简单的服务治理,Spring Clould目前有19个项目,提供配置中心,消息总想爱你,分布式配置等众多部件。
对于开源软件来说,SC的社区活跃度非常高。
Spring Cloud 跨域支持JAVA,node,php,C++等,dubbo除Java外,C++只是进行了尝试。
其他差别还有很多,总的说来,Dubbo由于有大量的中文文献,所以在中国国内有不少公司在使用,技术上也确实很牛。两者的诞生的时间也是在同一年。但SC由于全球的活跃性,在技术上不断发展,代表了目前最新的技术方向。不过实话实话,阿里能做出Dubbo并开源,还是展现出了一家科技公司的底蕴。
微服务架构的优点
对于研发运维方面,使用微服务架构后在整个系统会比较清晰。每个微服务可以单独进行升级,避免了整体升级带来的风险。每个微服务可以由单独的团队来进行维护,并且非常容易扩展。
对于业务支持方面,使用微服务架构与其他相结合,在商品大促等高流量大并发的过程中可以较容易对服务进行升降级,保障核心服务的稳定性。同时由于微服务架构与Docker技术的结合,对于资源的调用和弹性扩展变的非常容易。
微服务架构面临的挑战
当系统整体复杂程度上升的同时,微服务之间的关系也会非常复杂,需要较好的服务治理。
采用微服务架构对应的成本相对偏高,对于很多小企业来说,单机或集群架构往往可以满足。
插点广告
目前京东云JCMall2.0 B2B交易系统,JCStore品牌商城都采用了基于SC的微服务架构,可以较好的支持客户多种业务场景。通过与京东云基础云相结合,可以满足大流量高并发的电商业务诉求,让合作伙伴从容面对业务挑战。
感谢
感谢两条研发线负责人李立波和杨林这段时间专业上的讲解。
未完待续……
以上是关于抬头讲零售 | 浅谈电商系统的微服务架构的主要内容,如果未能解决你的问题,请参考以下文章