APP下载

基于微服务架构在跨境电商企业公共服务系统中的设计和实现

2021-02-28边涛吕哲楠张成喆赵锟张程张弛王玉楠

电脑知识与技术 2021年35期
关键词:微服务跨境电商

边涛 吕哲楠 张成喆 赵锟 张程 张弛 王玉楠

摘要:随着信息化时代的发展,业务系统越发庞大复杂,系统开发及维护面临着巨大的挑战。针对这一问题,基于微服务架构的统一应用应运而生。微服务架构有很多优点,但是也会带来很多复杂性问题,需要额外的代价来解决。从应用架构、支撑框架方面总结了一套关于微服务的具体实现,并对如何通过架构分解实现新型架构进行了说明,最后通过对跨境电商的企业服务平台的微服务架构进行实现,达到了预期效果。

关键词:微应用;微服务;跨境电商

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2021)35-0142-03

Design and Implementation of Cross-border E-commerce Enterprise Public Service System Based on Micro-service Architecture

BIAN Tao1, LV Zhe-nan1, ZHANG Cheng-zhe1, ZHAO Kun1, ZHANG Cheng1, ZHANG Chi1, WANG Yu-nan2

(1.China electronic port data center Tianjin Branch, Tianjin 300012, China; 2. Tianjin Electronic Time Tech Center, Tianjin 300012, China)

Abstract: With the development of information age, business systems are becoming more and more complex, and the development and maintenance of the systems are facing great challenges. In order to solve this problem, the application based on micro-service architecture has emerged. Microservice architecture has many advantages, but it also brings many complexity problems, which need to be solved at extra cost. This paper summarizes a specific implementation of micro-service from the aspects of application architecture and supporting framework, and explains how to realize the new architecture through architecture decomposition. Finally, it achieves the expected effect by implementing the micro-service architecture of the enterprise service platform of cross-border e-commerce.

Key words: micro-application; micro-service; cross-border e-commerce platform

微服務这一概念是由美国作者Martin Fowler于2014年最早提出,微服务架构(Micro Service Architecture)是指一种由多服务协同组成的应用模式,所有服务都独立部署在不同进程内,各个服务都有自己清晰的界限,服务之间通过如HTTP、REST协议进行通信[1],可以灵活使用多种不同编程技术和数据存储技术构建多项服务。

微服务架构具有健壮、容错性好、耦合度低、独立部署与灵活扩展等优点,但是微服务架构也会带来诸多复杂性问题。首先就是微服务架构的设计,按照具体的业务逻辑和应用场景来组建微服务架构的应用组成部分,以及各组成部分之间要建立相互通信机制。其次就是要考虑采用新的技术和框架来支撑和保障新的服务架构,实施灵活的部署方式和自动路由规划。最后业务应用被拆分为若干个服务后,也需要一个对业务和服务进行整体性能监控的工具,保障架构的稳定性和高可用性。本文在对跨境电商的企业服务平台的具体实现中,从应用架构、关键技术以及业务领域方面对平台的微服务架构如何实现进行了说明和实践,以便有需要使用微服务架构的技术人员参考。

1 单体应用

在以前的系统开发中,大多采用所谓单体应用,就是我们传统意义的、单个应用程序的应用。传统意义的单体应用一般由若干个功能模块组成,每个功能模块基本都分为用户访问界面(UI)、业务逻辑和数据交互三个部分,所有的功能模块作为一个独立的单元安装在中间件上运行[1],所有应用都对同一个数据库进行访问。单体应用的结构见图 1。单体应用一开始技术难度小、成本低,可以快速支撑发展,随着应用规模不断扩大,带来的成本也日益提高,相应的单体应用也越来越复杂,出现占用资源多、不易扩展等一系列问题。为了解决这些问题,微服务架构应运而生,它兼具灵活、快捷、耦合度低、独立部署、容易扩展等优点,正成为更多程序开发者的选择,其应用范围越来越广泛,是解决复杂业务环境的有力工具。

2 微服务架构介绍

微服务描述了一种将软件应用程序设计为可独立部署的服务套件的特殊方法,微服务架构实质上是一种属于分布式的系统解决方案,需要包括服务注册与发现、服务间通信、服务部署、负载均衡、API 网关、服务容错机制和性能监控等技术来实现。如图 2 所示。

微服务架构有很多重要的优点。首先,它将单体应用按照业务边界拆分为多个独立的服务,解决了业务复杂性问题,实现了业务解耦。每个服务边界清晰,同时单个服务的代码量更少、更加易维护。其次实现了技术异构,可以针对不同的业务采用不同的技术框架,有针对性地解决性能瓶颈。再者,可以实现独立维护,独立部署,独立扩展,有效提高系统开发、运维效率。最后可以达到有效隔离故障的目的,当部分服务出现故障之后,可以将故障有效隔离,而不影响其他服务的稳定性,以此来保障系统整体稳定性[2]。

3 微服务架构关键技术

3.1 服务发现与注册

微服务框架中的服务是一种动态,可随时复制、销毁、重定位的模式,所以有必要提供一種注册和发现的动态机制来实现微服务架构理念。服务注册中心负责管理服务的访问地址及路由信息等,同时实现服务注册、发布、状态检查和排除故障等功能。目前较为典型的注册中心有Zookeeper、Netflix Eureka、Consul。

3.2 负载均衡

微服务架构中的服务数量在具体运行中是动态变化的,与之对应的系统服务实例数量也随之增减,为了不断满足系统新的性能需求,开发者们设计了多种负载均衡算法,将服务请求按需分配至多个服务实例进行快速响应。例如以循环队列方式轮流响应服务的轮询法,按照不同服务请求进行随机分配的随机算法,以及按照键-值(key-value)进行计算而分派的哈希算法等,较典型的负载均衡器有Nginx、LVS、HAProxy等[3]。

3.3 服务网关

服务网关是外部服务请求的统一入口,负责提供身份认证管理、路由管理、服务组合、流量控制、负载均衡等功能。当有用户提出请求服务时,服务网关先对请求进行身份权限验证、API监控以及流量控制等系列操作,然后对用户请求进行分派、具体转发和调用等操作,也可提供服务发现和负载均衡等功能。Netflix Zuul是目前使用较典型的服务网关组件[4]。

3.4 服务通信

微服务架构里由于因业务拆分出多个服务,因此如何保障多个服务之间的准确高效通信显得尤为重要,目前有三种部署方式:一是多个服务部署在单个物理机或虚拟机中,这种方式有效利用资源,但可能互相影响;二是单个服务部署在单独虚机中,独立性好但浪费资源;三是单个服务运行在单独容器Docker中,既部署灵活也不相互影响。

服务间的通信基本都是通过网络传输来实现的,具体模式可以分为同步和异步两种,同步通信就是申请端发出通信请求并等待响应,采用REST协议较多,实现简单,通用性好;异步通信是指发出请求后不需要等待响应,一般采用消息队列方式实现,更适合应用场景较复杂的情况,但也增加了系统实现的复杂度。

4 应用案例

随着网络技术的发展,电子商务应运而生,跨境电子商务的出现与发展,颠覆了传统的贸易方式。目前跨境电子商务模式已经逐步建立,但是企业申报效率不高,企业通关流程比较繁琐,使得电商企业的成本增加,严重制约了跨境电子商务的发展。

本文设计的跨境电商企业公共服务平台的主要功能是跨境电商相关企业通过互联网访问该平台,完成跨境数据传输通道申请、跨境业务各种单据的协同汇总判定、跨境数据验证,以及调取以往跨境商品备案的相同或相近商品等操作,然后需要申报的单据申报至跨境电子商务公共服务平台,进行相关审批后反馈给企业。平台业务流程如图3所示。

在对平台进行架构设计的时候,基于微服务的思想对平台进行了架构分解。基于微服务的跨境电商企业公共服务平台架构按照其本身具有的业务、功能、技术和公共四个维度进行架构分解。业务维度分解将业务逻辑应用分解为跨境数据传输通道申请、跨境业务单据协同、跨境数据验证服务、跨境商品共享中心等四个领域。功能维度分解将业务功能分解为若干个子模块,包括注册模块、事前备案、订单管理、运单管理、清单管理、退货管理、业务数据查询、统计分析、帮助中心等。技术维度分解将各个主要子模块拆分为前端具体用户应用、后台多个微服务以及若干子数据库。平台公共维度分解为用户管理、系统管理、参数管理、日志管理、数据交换等。

平台采用当前较为成熟的Spring  Boot作为微服务实现框架[5],Spring Cloud Config为配置中心,使用Spring Cloud Gateway作为接口网关,内部的微服务之间通过Rest形式的 API接口通讯,基于Redis的数据缓存结构,采用Nagios和 ELK作为性能监控与日志工具。平台的微服务结构图如图4所示。

通过对跨境电商企业公共服务平台的微服务架构的设计和实现,按照上述四个维度的架构分解,将复杂的业务应用和大数据量的访问拆分成若干个微服务和子数据库,并运用了成熟的微服务关键技术组件,满足了高可用、低耦合、易扩展的目的,同时应用了API组合复用实现不同电商企业的自定义接口,有利于跨境电商的业务拓展。

5 结束语

本文对单体架构和微服务架构的应用模式和特点进行了介绍,并对微服务所需的关键技术进行了说明,结合在跨境电商企业服务平台的设计中得到了具体体现和实践,对平台进行了多维度的分解,通过微服务开发框架,开发人员能够快速构建多个微服务接口,并快捷部署到生产环境,取得了较好的效果。

参考文献:

[1] 刘丹,朱洪斌,王宇飞,等.一种微服务架构最佳实践[C]//2017电力行业信息化年会论文集.南宁,2017:368-372.

[2] 徐天桥.微服务对传统应用的改造及设计[J].电子制作,2020(8):38-39,63.

[3] 辛园园,钮俊,谢志军,等.微服务体系结构实现框架综述[J].计算机工程与应用,2018,54(19):10-17.

[4] 刘增才,张福铮,刘明珠,等.基于高可用微服务架构的数字党建平台研究及应用[J].信息技术与信息化,2019(11):184-188.

[5] 翟永超.Spring Cloud 微服务实战[M].北京:电子工业出版社,2017.

【通联编辑:谢媛媛】

猜你喜欢

微服务跨境电商
基于供给侧改革理论的图书馆社交网络微服务研究
微信公众平台在医院图书馆的应用现状调查
基于微信企业号的校园移动服务
关于对跨境电商店铺名的研究
跨境电商与电子商务以及传统外贸电商的对比分析
河南郑州港区跨境电商发展的相关问题分析
“互联网+”背景下温州传统外贸制造业转型研究
从单一模式系统架构往微服务架构迁移转化技术研究