使用Spring启动和Spring Cloud的微服务项目结构

时间:2017-11-13 13:53:05

标签: spring-boot microservices

我正在尝试使用spring boot和spring cloud将正常的单片Web应用程序转换为微服务结构。我实际上是在尝试创建Angular 2前端应用程序,并在云中调用这些我开发的微服务。我已经开始将模块分解为独立进程的微服务架构结构。

  • 我怀疑的是,在设计控制流和微服务结构体系结构时,我是否只能使用一个使用不同控制器的弹簧启动项目来完成整个Web应用程序后端处理。在某处,我发现当我正在阅读时,使用2个不同的弹簧启动项目开发所有微服务。其实我是春天和春天的新手。我的任务中有很多困惑。任何人都可以帮助澄清可以通过使用不同的模块在单个项目中创建所有服务???

3 个答案:

答案 0 :(得分:3)

实际上,将所有这些服务打包到一个项目中并不重要。但在微服务方面,您应该将它们分成许多独立的项目。在转换原始架构之前,您可以自问几个问题。

  • 您的申请是否至关重要?用户是否可以容忍停机时间而您必须重新部署整个软件包以仅更新一项服务?
  • 如果服务之间没有任何依赖关系,为什么要将它们放在一起?难道难以开发或维护吗?
  • 每项服务的使用率是否相同?也许你可以隔离这些服务并将它们部署到强大的服务器上。

尝试阅读本文Adopting Microservices at Netflix: Lessons for Architectural Design以了解设计微服务架构的最佳实践。对于使用Spring Cloud进行开发,您还可以阅读这篇文章Spring Cloud Netflix,以了解您应该在架构中使用哪些组件。

答案 1 :(得分:2)

目前我也在研究微服务,根据我的经验,我们设计了微服务,如下所示,

  • <强>的Maven

    • 您应该使用不同的项目创建项目。但实际上您可以将项目与子模块分开。因此,您可以轻松管理项目,也可以将其与其他项目一起使用的子模块。
    • 构建Jar库放置本地存储库。它可以节省您的时间,您只需找到相同的组件或您的功能然后构建放在本地存储库中的jar文件,因此每个使用此函数的项目都会指向下载此存储库,您不必编写很多项目都一样。

所以最后我希望你创建不同的springboot项目,但只需创建子模块并构建本地存储库。

答案 2 :(得分:0)

通过在不同项目中创建模块,您可以创建更灵活的解决方案。

您甚至可以在服务中使用不同的语言和技术。例如。您的一个服务可能是NodeJS,其余的是Java / Spring。