合理划分微服务
微服务架构设计的首要任务就是合理划分微服务,即围绕业务功能创建微服务项目。在划分微服务时,有关微服务粗细粒度的考量,建议在平台创建的初始阶段使用粗粒度的方法,按业务功能进行划分。随着业务的发展及其运营的情况,再依据发展规模考虑是否继续细分。下面,我们将使用水平划分法和垂直划分法两种方法相结合的方式创建微服务。
一方面,在水平方向上,根据业务功能划分微服务,并把这次划分所创建的微服务称为 RESTAPI 微服务。RESTAPI 微服务负责业务功能的行为设计,主要完成数据管理方面的工作,并通过使用 REST 协议,对外提供接口服务。
另一方面,在垂直方向上,再以 REST API 微服务为基础,实现前后端分离设计,创建 WebUI 微服务。Web 微服务不直接访问数据,它只专注于人机交互界面的设计,它的数据存取将通过调用阻STAPI 微服务来完成。
这样,经过两次微服务划分,我们就可以创建出 RESTAPI WebUI 两种类型的微服务。
也就是说,我们只要使用两种类型的微服务,就可以构建一个复杂的业务系统。
使用 RESTAPI WebUI 微服务,结合高性能和高并发的设计,再通过微服务的多副本发布,就可以构建一个能适应任何规模访问的、多维的、稳定牢固的网格结构,并且这个网格结构还具有自由伸缩的特性,可以根据业务的发展规模进行扩充或者缩编 这样就可以快速地搭建一个可持续扩展的系统平台。
创建 RESTAPI 微服务
根据电商平台的总体设计及其各个业务模型的功能,就可以创建和划分微服务了。
下面使用 上节中微服务架构的设计方法划分微服务,即使用水平划分法和垂直划分法创建微服务项目。
首先使用水平划分法,按电商平台的业务功能 进行阻ST API 微服务划分。下面是初步划分出来的一些微服务。
通过这些微服务,就可以创建出相关的 RESTAPI 微服务。RESTAPI 微服务是一个独立的小应用,并且有独立的数据库,可以独立部署和独 运行。RESTAPI 微服务使用 体对象进行数据的存取操作,然后对外提供基于 HTTP RESTful 接口服务。
这些微服务的大体功能说明如下。
- 类目服务,使用二级分类体 ,对外提 分类信息的录入 查询、修改和删除 功能接口。在应用 面上,可以根据不同的业务 求使用不同的功能接口。商城和商家管理后台中,只提供分类的信息查询。在平台管理后台中,可对分类进行编辑和管理。
- 商品服务,提供商品创建、商品编辑管理、商品上下架等功能接口,这些均可用于商家管理后台中,为商 提供管理商品的功能。在商城应用中,只需使用商品 询、搜索和商品详情显示等功能接口。
- 购物车服务,主要为商城的顾客在选购商品时提供服务。同时,购物车服务还提供了对选购商品进行加减和管理等功能接口。
- 订单服务,在商城中为顾客提供订单生成、订单 询等功能接口。在商家管理后台中可以为商家提供订单 理、查询和统计等功能接 口。
- 支付服务,在商城中提供结算支付服务。在平台管理后台中提 服务费计算和利润结算的功能接口,同时也可为商家提供收款查询和对账等功能接口。
- 物流服务,在商城中为顾客提供物流跟踪及收货确认等服务接口。在商家管理后台中提供发货处理和查询统计等功能接口。
- 评价服务,顾客在商城中交易完成后,可对商品进行评价。同时,顾客在选购商品时,可以查询其他顾客对商品的评价。评价可为顾客购物提供参考。
- 顾客服务,顾客是平台的用户,顾客服务提供了用户注册、登录、个人信息编辑、收货地址管理等功能接口。
- 会员服务,会员是商家的用户,顾客在购物过程中可以在任何一个商家注册成为会员。在成为会员后,顾客可享受商家提供的特权服务,比如购物折扣、会员积分等点击率服务,点击率是记录顾客浏览商品的足迹,这些数据可为商家的销售提供决策参考。
- 点击率服务为商家提供查询和统计的功能接口。
- 商家服务,可提供商家创建、编辑和权限管理等功能接口,可为平台管理后台实现商家注册、审核和商家用户的权限管理等功能接口。
创建 WebUI 微服务
在创建REST API 微服务之后,就可以使用垂直划分法,根据每个 REST API 微服务实现前后端分离设计,创建 Web 微服务。
根据电商平台的业务模型设计,我们将分别从移动商城、商家管理后台和平台管理后台三个方面创建 Web 微服务
移动商城 WebUI 微服务
移动商城的业务功能包括:分类查询、商品查询、购物车 理、订单查询、物流跟 查询、个人信息管理和会员卡管理等。
移动商城的 Web 微服务如下:
- 分类查询
- 商品查询
- 购物车管理
- 订单查询
- 物流跟踪查询
- 个人信息管理
- 会员卡管理
使用这些微服务提供的服务功能,就可以构建出一个轻灵小巧而又功能丰富的移动商城应用,为各种移动设备提供一个自由网购的服务。
商家管理后台的 Web UI 微服务
商家管理后台的业务功能包括 用户管理、商品管理、订单管理、物流管理、会员管理和点击率统计等。这里的每一项功能,都分别由一个单独的微服务应用提供。
商家管理后台的 Web 微服务如下:
- 用户管理
- 商品管理
- 订单管理
- 物流管理
- 评价查询
- 账户管理
- 会员管理
- 点击率统计
商家管理后台将实现安全的访问控制设计,其功能由不同的应用提供。为了统一用户登录,提供友好的用户体验,我们还将使用一个 sso (单点登录)设计。
sso 是一个独立的微服务应用,一方面提供统一的访问控制功能,另一方面提供接入应用的授权认证管理功能,即不管商家用户在哪一个应用中登录,都可以获得访问其他应用的权限。
平台管理后台的 Web UI 微服务
平台管理后台是一个独立的 Web 微服务应用,它通过调用商家服务,实现商家注册、审核,以及权限配置等管理功能。
平台管理后台的操作对象为平台运营方,使用范围较小,所以可以使用较为简单的设计方法,即用一个单独应用完成下列相关管理功能
- 本地用户管理
- 商家管理
- 商家权限及其菜单资源管理
另外 ,平台管理后台的访问控制设计也可以使用较为简单的方法实现。
本文给大家讲解的内容是大型电商平台设计实例:合理划分微服务、创建RESTAPI、Web UI 微服务
- 下篇文章给大家讲解的是大型电商平台设计实例:电商平台微服务体系架构、电商平台微服务项目工程、项目数据库选型、项目代码库;
- 觉得文章不错的朋友可以转发此文关注小编;
- 感谢大家的支持!
本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。