Java 带有Spring Boot、Netflix、Docker和Maven的微服务。如何组织发展?
我是Microservices的新手,我选择以下堆栈作为练习Java 带有Spring Boot、Netflix、Docker和Maven的微服务。如何组织发展?,java,spring-boot,docker,microservices,netflix,Java,Spring Boot,Docker,Microservices,Netflix,我是Microservices的新手,我选择以下堆栈作为练习 我想用Spring boot、Netflix API和Maven构建一些API 对微服务进行Dockerize,这样我就可以在CloudFoundry中部署,也可以在Kubernetes或AWS上部署 使用javascript框架构建PWA并调用这些API 有点雄心勃勃 我知道微服务将单独部署。我知道web应用程序将首先连接到网关,等等 但是作为一名新的开发人员,他开始在一个开发搜索产品api的团队中工作,例如,我是否会打开我的STS
这些问题非常广泛。我想你应该先读一读
PS:请查看sleuth和zipkin的分布式跟踪功能,这是对您的问题的更实际的回答 项目结构: 多模块项目最适合高度耦合的微服务。意思是:它们将被单独使用,并将基础设施的其余部分视为一项单一服务 在现实世界中,您使用的是微服务体系结构,因此大多数(如果不是全部的话)应用程序都可以从基础架构中的任何微服务中获益。将其视为一个网络,其中每个节点都是一个公开服务的应用程序。我建议每个微服务有一个独立的spring boot项目 微型服务对接: 实现这一目标的最简单方法是:
docker构建-t ms:latest path/to/Dockerfile
我将把它留到这里,因为您的问题涉及到如何构建项目以及如何使用maven将spring boot应用程序打包到docker映像中。部署到Cloud Foundry时,不需要“Dockerize”,因为Cloud Foundry容器已经管理了它。AWS也一样。我相信这两个平台都允许你管理自己的容器,如果你真的想折磨自己的话。就整个项目而言,我建议从小处着手,逐步扩大范围。这将帮助你避免不知所措和放弃。从一个小的可交付成果开始,制定一个实施计划,您可以在最终达到最终设计目标的积压工作中跟踪该计划。我相信,当您处理积压工作时,您会看到您最初的想法逐渐发生变化 问题太宽泛了。我想知道我是否应该使用多模块项目,这意味着是否应该共享服务注册表、配置服务器和网关。谢谢,你回答了我的一个问题。另一个问题是,这3个项目(服务注册表、网关、配置服务器)是否在微服务之间共享?例如,我是否可以将它们打包到一个罐子中,并将它们导入每个微服务的每个pom中?@Gfalco它们将在微服务之间共享。@Gflaco Gotcha,微服务是独立的应用程序,它们通过公开的端点相互通信。您可以开发请求,而不是在项目中使用依赖项/库
FROM jdk:latest
EXPOSE 8080
WORKDIR /srv
COPY ms.jar .
CMD java -jar ms.jar