生鲜电子商务系统中微服务系统的层次设计和领域划分

随商电商系统2021-08-12 12:36:33电商资讯

在Java生鲜电商平台中,微服务系统的分层设计和领域划分应该是怎样的?

看标题,感觉这个东西很理论化。与“高并发、多线程”、“分布式CAP、一致性、Paxos”、“高可用性SLA”等具体干货技术点相比,软件系统知识非常“湿”。似乎每个人都有自己的理解,但很少有人能说它是完整的。有一点是肯定的,如果未来需要独立设计一个复杂的系统,让它成为未来,在合理定义边界之后,即使一个微服务不好,投入和产出都可以用很少的人力投入来重构。相反,一招触发全身,业务需求来得频繁,很容易失败或达不到预期效果。

事实上,很多技术专家在某个技术点上是很擅长的,但他们很可能对整体软件系统考虑不多。每个人都有自己的设计方法。大多数易于思考的设计方法足以处理普通系统。待会再解决问题。当我们面对各种需求变化陷入发展困境时,我们应该思考一下。我们系统的系统设计有问题吗?本文不打算讨论领域建模和设计模式等代码级细节,而是讨论如何对复杂的大系统进行分层和拆分,这是设计一个漂亮系统的第一步。相信对于BU同仁快速搭建系统的中间平台也有很大的参考意义。

你可能在本文中遇到过一些例子。如果在开发中遇到困难,可以来圈子里交流发布问题,一起学习,一起进步。如果知道内容的背景,可以直接跳到第3部分。如果你想知道如何为一个大项目安排科学人员,你可以直接看第5.4节。如果您的团队中有人使用数据库模型作为接口契约,您可以建议他们阅读第5.1节。如果你在开发过程中遇到了一些别人的开发设计习惯,你觉得不是很好,但是你又不知道怎么说服他,可以去评论区一起聊聊,讨论一下。

1.摘要

本文描述了将分层设计和DDD域设计思想应用于微服务架构的方案实践,这也是个人的最佳实践。

对于大多数互联网公司,我们提倡他们的Web服务架构可以分为五层:基础设施层、域服务层、应用服务层、网关层和用户界面层(表示层)。域服务层和应用服务层都可以通过微服务设计进行拆分,其中域服务层将按照DDD域设计进行域划分,设计为域模块微服务。每个微服务都是高度内聚的,只关注自己的业务,域服务通过接口调用松散耦合。这种设计方案可以大大简化大型系统,其优势将在后期维护中日益凸显。然而,将大系统划分为微服务也对架构师和开发人员提出了更高的要求。

第二部分介绍了相关背景,第三部分讨论了分层设计和各层的功能,第四部分用微服务和DDD对域服务层的服务模块进行了划分和设计。第五部分梳理了分层设计和DDD域设计中常见的问题。

2.背景介绍

我想写这样一篇文章已经很久了。虽然我的专业是软件工程,但是由于能力有限,从2008年写代码开始就断断续续的思考。项目模块设计和分层结构设计,从来没有找到一个能让我感到满足,没有纠结的答案。假设一定的设计,我很快就会在实践中发现一些问题。直到2014年毕业工作了解到DDD领域驱动设计,才有了一个相对明确的方向。

其实早在2004年,Eric Envas的《领域驱动设计:软件核心复杂性应对之道》就已经出版了。毕竟,自从计算机普及以来,软件开发已经存在了很长时间。早期的国外程序员也在努力研究软件开发理论。现在,当他们成熟时,他们做的研究相对较少。

DDD领域驱动设计对软件设计的各个方面都有很高的要求。用《领域驱动设计》的话说,它需要一个“领域驱动的团队”[1],这就要求从分析阶段开始,产品经理、项目经理、架构师和开发工程师使用统一的模型语言进行沟通,他们都知道一些代码、产品和建模的相关知识。事实上,这在中国很难实施。国内的产品经理大概等于需求整理员,对其计算机基础要求很少。在我的公司,有过产品经理直接指导开发的案例,以至于双方理解的同一个词有不同的含义。

因此,本文并不打算解释DDD域的代码级建模实践,甚至本文也不认为贫血模型不好。本文主要讨论域之间的划分和分层设计,正如在引言中提到的,这是设计一个漂亮的系统的第一步。此外,实际上,合理设计的微服务系统中的服务都是功能单一、边界清晰的小应用,那么贫血和DDD域建模就可以胜任。

近年来,随着分布式的发展,传统的面向中小型计算机的集中式服务器不再流行,因此微服务系统成为各大互联网公司的主流选择。直觉上,微服务和DDD似乎是一个微系统的设计方法,另一个是一个大系统。看起来它们自然是互斥的,微服务小系统不需要DDD。事实上,DDD是整个复杂软件解决方案的科学设计方法。微服务还将复杂的大系统拆分成小系统,便于维护和管理,所以两者都有一个


随商信息技术(上海)有限公司 b2b2c多用户商城系统是基于PHP技术的企业级电子商务平台系统,系统支持平台自营、招商加盟和多商家入驻、集成微信商城、移动端APP商城、微信小程序于一体。公司主营业务包含商城系统定制开发、新零售系统解决方案、电商平台系统定制开发、商城网站建设服务等等,随商为大、中、小企业提供一个安全、高效、强大的电子商务解决方案,协助企业快速构建、部署和管理其电子商务平台,拓展企业销售渠道,致力于推动PHP技术和电子商务行业的发展而不断努力。

文章关键词  
电商平台建设
电子商务系统
电子商务网站建设

除了供应标准网上商城系统之外,我们还开源商城源码,为您提供电商平台开发定制服务

随商全新版PHP企业级电商平台系统,以客户需求为己任,提供免费网店系统源码给用户体验,为国内客户特别是上海周边客户提供电商平台及网上商城网站建设服务,您的商城开发建站需求,我们来实现!

网上商城建站
包含微信商城网站建设及小程序商城建设等一站式电商系统建站服务,java商城php商城 两种语言。
APP开发
提供APP商城开发,包含Android App 、iOS App等等, 原生APP品质
手机商城开发
提供APP商城、微信商、小程序、手机H5商城搭建及二次开发
电商平台开发
作为电子商务系统提供商,以自研的商城模板为企业提供专业的电商平台系统搭建服务

马上搭建自己的电商平台