微服务(Microservices)架构是软件架构风格的一种。随着云平台的采用,企业应用程序的开发从整体应用程序转移到小型、轻量和过程驱动的组件,这种组件称为微服务。顾名思义,微服务是指小型服务。它们是设计可扩展、易于维护的应用程序的下一个重大事件。它不但使应用程序开发起来更容易,而且还提供了极大的灵活性来以□佳方式利用各种资源。
本书是帮助你构建供企业使用的微服务实现的实践指南。它还解释了领域驱动设计及其在微服务中的采用。它讲述了怎样构建更小型、更轻量、更快速的服务,同时确保其可以很方便地在生产环境中实施。它也讲述了企业应用程序开发从设计与开发,到部署、测试和实现安全性的完整生命周期。
本书包含的内容
□□章,一种解决方法,涉及大型软件项目的高层次设计,在生产环境中所面临的共同问题和解决问题的方法。
第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开发人员。
版式约定
你会发现,本书采用了大量的文本样式,用以区分不同种类的信息。下面是这些样式和解释它们的含义的一些例子。
正文中的代码、数据库表名称、文件夹名称、文件名、文件扩展名、路径名、虚拟的URL、用户输入和Twitter句柄如下所示:“可以使用下面的实现创建Table实体,并且可以根据自己的需要添加属性”。
代码块的设置,如下所示︰
public class Table extends BaseEntity {
private int capacity;
public Table(String name, BigInteger id, int capacity) {
super(id, name);
this.capacity = capacity;
}
任何命令行输入或输出采用的格式如下:
docker push localhost:5000/sourabhh/restaurant-service:PACKT-SNAPSHOT
docker-compose pull
下载示例代码
从http://www.broadview.com.cn下载所有已购买的博文视点书籍的示例代码文件。
勘误表
虽然我们已经尽力谨慎地确保内容的准确性,但错误仍然存在。如果你发现了书中的错误,包括正文和代码中的错误,请告诉我们,我们会非常感激。这样,你不仅帮助了其他读者,也帮助我们改进后续的出版。如发现任何勘误,可以在博文视点网站相应图书的页面提交勘误信息。一旦你找到的错误被证实,你提交的信息就会被接受,我们的网站也会发布这些勘误信息。你可以随时浏览图书页面,查看已发布的勘误信息。
参与本书翻译的人员有卢涛、李颖、卢林、陈克非、李洪秋、张慧珍、李又及、卢晓瑶、李阳、陈克翠、刘雯、汤有四。