我在asp.net MVC中为银行部门创建了一个项目。
在开发时,我们没有考虑扩展。因此,我们没有使用任何模块化的体系结构。
但是现在我在部署和开发新功能方面面临很多问题。
如果我开发任何新功能,那么当前我必须发布整个项目,因为只有一个名字peace-projectmain.dll。
现在,我想将所有控制器分离在单独的项目中,并想单独部署它,并使用MicroService体系结构,我想在主项目中使用它。
注意 我的视图与控制器紧密结合。
那么如何在MicroService Architecture中迁移整个控制器?
答案 0 :(得分:0)
“如何迁移到微服务”需要一个非常长的答案,这可能是一本书。但是,我可以给您一些指导,以帮助您。
首先,您可以遵循DDD方法来帮助您正确识别应用程序的有限上下文。在理想情况下,每个域都应对应一个有界上下文。因此,您可以按有限的上下文划分。每个有界上下文可以具有一个或多个微服务,但是微服务不应大于有界上下文。从我的角度来看,您的控制器已经按域或至少按子域划分了。您可以尝试为每个控制器创建一个微服务,并查看其运行情况。可以进一步进行细分,即按照DDD中的Aggregate进行划分(每种Aggregate类型都可以是微服务)。
第二,每个微服务应该有单独的项目。理想情况下,如果您需要弹性和可伸缩性,则微服务不应在外部请求期间调用其他微服务。这意味着,当微服务收到来自客户端的请求时,它不应调用另一个微服务。为此,它应该已经将所有其他微服务的所有必需数据都已传输到其本地存储(使用后台任务,以及同步或异步调用)。
最后但并非最不重要的是,每个微服务都应该有自己的数据库;他们不应该共享相同的数据库或表。
答案 1 :(得分:0)
在这种情况下,我猜一个选择是将您的控制器转换为Web API,每种操作方法都返回JSON数据而不是返回要渲染的视图。现在将其视为单独的后端,可以将其捆绑为一个微服务。下一步是将您的剃刀视图转换为具有2层的纯前端微服务(使用诸如angular或react这样的框架)-