微服务是利用云平台开发企业应用程序的最新技术,它是小型、轻量和过程驱动的组件。微服务适合设计可扩展、易于维护的应用程序。它可以使开发更容易,还能使资源得到最佳利用。本书帮助你用Java构建供企业使用的微服务架构,内容包括微服务核心概念和框架、大型软件项目的高层次设计、开发环境设置和前期配置、对微服务架构持续集成的部署、实现微服务的安全性、有效地执行测试、微服务设计的最佳做法和一般原则,以及如何检测和调试问题。
本书适合想要了解微服务架构,以及想要深入了解如何有效地实施企业级微服务的Java开发人员。
Spring Boot|Spring Security|REST|Docker|DDD|OSS全线贯通
前言
微服务(Microservices)架构是软件架构风格的一种。随着云平台的采用,企业应用程序的开发从整体应用程序转移到小型、轻量和过程驱动的组件,这种组件称为微服务。顾名思义,微服务是指小型服务。它们是设计可扩展、易于维护的应用程序的下一个重大事件。它不但使应用程序开发起来更容易,而且还提供了极大的灵活性来以最佳方式利用各种资源。
本书是帮助你构建供企业使用的微服务实现的实践指南。它还解释了领域驱动设计及其在微服务中的采用。它讲述了怎样构建更小型、更轻量、更快速的服务,同时确保其可以很方便地在生产环境中实施。它也讲述了企业应用程序开发从设计与开发,到部署、测试和实现安全性的完整生命周期。
本书包含的内容
第1章,一种解决方法,涉及大型软件项目的高层次设计,在生产环境中所面临的共同问题和解决问题的方法。
第2章,设置开发环境,讲述了如何设置开发环境,包括IDE和其他开发工具,以及不同的库。本章涉及创建基本项目到设置spring引导配置,以建立和发展第一个微服务。
第3章,领域驱动设计,通过引用一个示例项目为其余的章节设定基调。它使用此示例项目来驱动服务或应用程序的不同功能和领域组合来解释领域驱动设计。
第4章,实现微服务,讲述示例项目从设计到实现的过程。本章不仅涉及编码,还涉及微服务的不同方面——构建、单元测试和包装。在本章末尾,将完成一个可用于部署和使用的示例微服务项目。
第5章,部署和测试,讲述了如何采用不同的形式,包括独立部署和使用诸如Docker的容器来部署微服务。本章还将演示如何用Docker把我们的示例项目部署到诸如AWS的云服务上面。你还将掌握使用REST Java客户端和其他工具来测试微服务的知识。
第6章,实现微服务的安全性,解释如何利用身份验证和授权来保证微服务的安全。身份验证将使用基本身份验证和身份验证令牌来讲述。同样,授权将使用Spring Security来解释。本章还将解释常见的安全问题及对策。
第7章,利用微服务Web应用程序来使用服务,解释了如何利用Knockout、Require和 Bootstrap JS库开发web应用程序(UI),构建使用微服务来显示数据的web应用程序的原型和一个小型实用程序项目(示例项目)的流程。
第8章,最佳做法和一般原则,讲述微服务设计的最佳做法和一般原则。本章还提供了有关使用行业做法进行微服务开发的详细信息和范例。本章还包含微服务实现会产生的错误,以及如何才能避免这类问题的几个例子。
第9章,故障排除指南,解释了在微服务及其解决方案的开发过程中会遇到的常见问题。这将帮助你顺利地掌握本书内容,并使学习过程轻松。
学习本书需要具备的条件
为了学习本书,可以使用至少具备2GB内存的安装了任何操作系统(Linux、Windows或Mac)的计算机;还需要NetBeans with Java、Maven、Spring Boot、Spring Cloud、Eureka Server、Docker和CI/CD的应用程序。对于Docker容器,可能需要一个单独的虚拟机或一个云主机,最好拥有16GB或更大的内存。
本书的受众
本书面向熟悉微服务架构,并对核心要素和微服务应用程序有一个合理的知识水平和理解,但现在想要深入了解如何有效地实施企业级微服务的Java开发人员。
Cofiguration 应为 Configuration
@SpringBootApplicationthat
应为
@SpringBootApplication
Restaurant, BigIntger {
应为
Restaurant, String {
【否则代码编译失败,不会通过。】
RestaurantServiceis
应为
RestaurantService
实现刚定义的RestaurantServicewe。
应为
实现刚定义的RestaurantService