kes*_*isb 0 domain-driven-design web-services node.js microservices
我正在研究一个整体系统。它的所有代码都在一个存储库中(Web API 和后台工作人员)。系统使用 Nodejs 编写,使用 MongoDB(Mongoose)作为数据存储。我的目标是为项目的发展设定一条新路径。起初我想知道我是否可以转向基于微服务的架构。
单体架构带来了一些问题:
使用微服务的优势非常明显:
查看当前代码,我注意到整个项目都使用 Mongoose ODM(对象文档映射器)模型来创建、查询和更新数据库中的模型。作为一个好的编程的原则,所有这些与数据库的交互都应该被抽象出来。业务逻辑不应泄漏到其他系统层。我可以通过引入 REPOSITORY 模式(域驱动设计)来做到这一点。虽然代码仍在通过 web api 和后台工作人员共享,但这并不是一项艰巨的任务。
如果我决定将存储库提取到独立的微服务中,则会出现所有问题:
由于项目处于早期阶段并且我是唯一的开发人员,因此转向基于微服务的架构似乎有点矫枉过正。也许我应该考虑其他方法?
将业务逻辑和与数据库的交互提取到单独的存储库中并在服务之间共享以避免服务之间的复杂通信协议?
小智 5
根据我过去几年在微服务领域工作的经验,这在目前的情况下似乎有点矫枉过正,但从长远来看是值得的。
根据以上信息,我的想法是:
通信 -使用 MSA,服务之间的通信成为关键,因此一般做法是保持面向消息的通信方法(阅读有关反应式系统和反应式编程的更多信息)。
PaaS 解决方案 -有多种 PaaS 解决方案可供您应用,这样您就不必担心容器管理、容器编排、自动扩展、配置管理、日志管理和监控等所有其他方面。请参阅以下内容PaaS解决方案:
https://www.nanoscale.io/由 TIBCO
https://fabric8.io/ - 来自 RedHat
https://openshift.io - 由 RedHat 提供
云供应商平台 - AWS、Azure 和 Google Cloud 从部署的角度来看都对微服务应用程序有特定的支持,如果您不想在组织中部署 PaaS 解决方案,我们可以将其用作替代解决方案。
希望这些指针将有助于理解整体格局,以便您可以构建您的架构以满足未来的需求。
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |