【问题标题】:Functional categarization of microservices versus Entity based categorization微服务的功能分类与基于实体的分类
【发布时间】:2019-03-07 02:10:08
【问题描述】:
我还没有开始从事一个项目,其中涉及通常的网站身份验证和一些其他服务。但这是我第一次考虑将网站拆分为微服务。我对如何拆分微服务感到困惑,
- 按实体
这意味着一个微服务负责所有与客户相关的功能,另一个负责另一个实体的功能等等。
- 按服务
意思是,一个微服务负责用户的身份验证,另一个微服务负责另一个用户可以在网站上执行的服务,依此类推。
请分享您的想法。
【问题讨论】:
标签:
architecture
microservices
software-design
【解决方案1】:
微服务应该围绕业务功能进行设计,而不是数据访问或消息传递等水平层。
一般可以走以下路径
1 ) 从分析业务领域开始,了解应用程序的功能需求。此步骤的输出是对领域的非正式描述,可以将其细化为更正式的领域模型集。
2 ) 接下来,定义域的有界上下文。每个有界上下文都包含一个域模型,该模型代表较大应用程序的特定子域。
3 ) 在有界上下文中,应用战术 DDD 模式来定义实体、聚合和域服务。
4 ) 使用上一步的结果来识别应用程序中的微服务。
我摘自微软官方网站,我认为您绝对应该阅读文档(在下面共享)来为您的微服务建模。
How to identify microservices