软件工程论文

您当前的位置:学术堂 > 计算机论文 > 软件工程论文 >

微服务视角下的企业电商平台系统架构探究

来源:计算机产品与流通 作者:魏鹏
发布于:2020-08-31 共2310字
    摘要:随着企业电子商务系统的不断迭代开发,单体式应用已不能满足软件的迭代扩展需求。新兴的微服务架构(Microservice Architect)根据企业业务、逻辑将单体应用分解为一个个服务,每个服务独立运行、部署,相互之间采用轻量级的通信机制进行通信。本文对基于微服务的电商平台架构进行探讨研究。
   
    关键词:微服务,电商平台,系统架构

系统架构师论文
   
    随着企业电子商务的快速发展,企业在线交易业务的不断扩大,单体式架构应用的进程耦合程度较高,应用随着时间推移系统越来越复杂、越来越大,开发、扩展、维护成本高,可用率低,敏捷性开发和部署变动无法完成。而微服务架构,将单体应用划分为一组小的服务,这些服务围绕具体业务进行构建,彼此之间采用轻量级通信机制进行通信。各个服务独立运行,可以针对各项服务进行更新、部署和扩展,以满足对应用的日常运行和更新的需求。微服务架构还让微服务与微服务之间在结构上“松耦合”,而在功能上则表现为一个统一的整体。微服务灵活性、扩展性、伸缩性以及高可用性是未来发展的必然方向。
   
    电商平台系统基于微服务架构,整个架构可以按照业务逻辑的规划,将复杂的业务拆分为细颗粒度的模块和服务,并利用docker容器装载每个服务或应用,docker容器隔离应用的能力使系统解耦,降低开发、管理、运维风险。Docker的细粒度、松耦合使一个Docker容器可以装载一个服务或者应用,一台服务器运行多个,或者多个容器在多台服务器上运行,并根据HTTP REST api的方式进行调用整合。
   
    传统的企业服务总线、SOA模式中,服务调用者与提供者通过企业服务总线集成,在性能、成本消耗上ESB都会出现瓶颈。微服务采用“去中心化”支撑分布式应用,为了让整个业务系统的扩展没有瓶颈,只需按照业务发展需要进行扩展。减少研发成本、降低运维成本、解决性能问题、应对快速变化。
   
    一、实现方式
   
    基于Docker的组件服务化、管理可视化的微服务电商平台的总体架构,主要是从开发集成、微服务运行容器与平台、运行时监控治理和外部渠道接入等维度来划分的。Docker是一个开源的应用容器引擎,基于开放式标准可以在所有主流系统以及VM、云在内的基础服务设施上运行。Docker赋予应用隔离性,独立底层的基础设施,不依赖于任何语言、框架包括系统。平台主要提供以下能力:(1)应用系统的可视化配置管理,全面兼容Apache Tomcat等容器;(2)API接口的开发、开放、安全、统计等全生命周期管理;(3)数据库、业务指标、应用系统性能、操作系统性能和组件健康状况的全方位监控。
   
    二、微服务数据流向
   

    (1)客户前端发起的请求通过负载均衡统一转发到网关服务(API Gateway)。
   
    (2)网关移除请求体后,将请求转发至网关辅助服务,进行集中地鉴权、限流等处理。
   
    (3)网关辅助服务请求认证服务(OAuth Server),准备鉴权逻辑处理。
   
    (4)网关判断是够需要做个性化处理,若不需要再做权限或者限流处理则添加JWT。
   
    (5)权限检查与限流。
   
    (6)网关辅助服务鉴权通过后,往http response中添加JWT token。
   
    (7)网关请求真正的服务。
   
    三、系统微服务架构服务集群
   
    (1)服务注册(register-server)发现:承载了所有服务的管理,需要保证系统高可用。
   
    (2)网关服务(api-gateway、gateway-helper)作为服务的唯一入口,负责验证、监控、负载均衡、缓存、请求分片等诸多功能,需要保证高可用。
   
    (3)认证服务(auth-server)、权限管理(hpayiam)、平台服务(hpay-platform)属于使用频率稍高,要提高系统吞吐以及做到负载,后续也可视实际情况做伸缩即可。
   
    (4)Api服务(manager-service)、配置服务(config-server)属于使用频率较低以及被其他服务依赖度不高的服务,不需要做负载均衡,只要可用即可,后可按需扩展,故设置1个实例。
   
    (5)电子商城服务集(电子商城-service)包含供应商,考评,合同,送货,财务等核心服务,需要达成一定的系统吞吐量以及做到高可用及负载均衡,故需要根据企业的业务复杂程度适当调整服务实例数,适当地扩展。
   
    (6)前端服务(front)同样可以看做为一个服务,部署在应用中,需要部署nginx做代理,将打包好的前端部署到nginx中即可。
   
    四、微服务架构电商平台的优势
   
    (一)高性能
   
    系统所采用的体系架构从理论上对系统性能打下基础,但实现一个高性能的应用系统,还需要在技术设计及实现的每个阶段进行精心考虑。应用层所有节点均是无状态,在系统出现性能瓶颈时,能够通过增加应用节点平滑的进行负载分配。
   
    在表结构设计、SQL语句优化、索引优化、表空间分配及维护、I/O及CPU瓶颈分析、数据库参数tuning等方面具有扎实的功底,能够有有效地提高基于ORACLE/Mysql数据库的系统的响应速度。
   
    用缓存技术,将热点数据与静态数据比如组织架构、人员信息预先加载到缓存中,降低数据查询时的网络与数据库IO,提升接口性能,增强用户体验。
   
    (二)可靠性
   
    系统主要通过冗余备份服务器来实现高可靠性。其中:应用服务支持分布式集群,使用k8s容器云部署,这样一台服务器发生故障时,可自动由其他服务器接管,不影响系统的整体运行;数据库使用主从同步,多机互备,可更好地增强数据库服务器的可靠性。
   
    (三)冗余
   
    针对缓存、反向代理、数据库服务器的高可用性要求,支持缓存、反向代理、数据库服务器的keep-alive冗余配置,可以实现灾备自动切换。而针对数据库服务器,利用mysql的主备策略,实现数据库集群的实时同步。
   
    (四)可扩展性
   
    采用docker微服务架构,前后端分离,应用与数据库分离,天然具有良好的可扩展性。当系统负载增加时,可通过新启动一个服务节点来分担负载,当硬件资源遇到瓶颈时,则可通过在线增加硬件加服务,来提高系统的处理能力。
   
    参考文献   
    [1]蒋彪.Docker微服务架构实战[M].电子工业出版社,2018.  
    [2]周立.Spring Cloud与Docker微服务架构实战[M].电子工业出版社,2018.
返回本篇论文导航
作者单位:湖南文理学院芙蓉学院
原文出处:魏鹏.基于微服务的企业电商平台系统架构研究[J].计算机产品与流通,2020(08):128.
相关内容推荐
相关标签:系统架构师论文
返回:软件工程论文