背景
我们使用Microsoft(.NET)技术堆栈。
我们目前有一个庞大的单片网络应用程序。我们正在计划如何实施领域驱动设计 我们计划在一些有限的上下文中实现微服务,但不是全部。因为它是巨石, 最有界的上下文将存在于同一个数据库中,因此我们必须确保控制访问权限 代码级别。
从this SO post开始,有两种方法可以实现有界上下文。
<bc 1>
|_ domain
|_ application
|_ presentation
|_ infrastructure
<bc 2>
|_ domain
|_ application
|_ presentation
|_ infrastructure
或以下:
domain
|_ <bc 1>
|_ <bc 2>
application
presentation
infrastructure
我们对第一种方法感兴趣。因为它似乎适合我们的情况。
我的问题是,在决定是否应该通过有限的共存将我们的单个Web应用程序拆分为单独的应用程序时应该考虑什么。在考虑这种方法时有哪些缺点和缺点?
我们申请的主要领域有一些(简洁):
Products
Client Administration
System Administration
当用户在特定区域时,他/她通常不需要关于其他区域的信息。
欢迎所有的想法和建议。我们正努力获得尽可能多的理解。
答案 0 :(得分:1)
微服务的基本基础之一是independent deployability,所以我肯定会选择方法1.
现在在那个场景中,&#34;表示层&#34;微服务并不像前端UI那样,它通常只是一个REST API。设计消费微服务的前端有几种方法,但如果Product
,Client
和System
前端有不同的生命周期,我建议为它们分别使用Web应用程序。
关于该主题的有用文章: http://blog.xebia.com/the-monolithic-frontend-in-the-microservices-architecture/ http://samnewman.io/patterns/architectural/bff/#bff