Enterprise Java Microservices
作者: Ken Finnigan
语言: 英文
出版年份: 2018
编程语言: Java
下载链接:
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。

书籍摘要

《Enterprise Java Microservices》是一本由Ken Finnigan撰写的专注于企业级Java微服务开发的实用指南。本书旨在帮助具有传统企业级Java应用开发经验的开发者,顺利过渡到微服务架构的开发中。作者凭借其在Red Hat领导Thorntail项目的经验,深入探讨了如何将Java EE技术应用于微服务开发,同时提供了丰富的实践案例和代码示例,帮助读者掌握微服务的开发、测试、部署及安全性保障。

第一部分:微服务基础

本书第一部分主要介绍了微服务的基本概念、架构设计以及与传统企业级Java应用的对比。作者首先回顾了企业级Java的发展历程,解释了单体架构(Monolith)的局限性,如难以快速迭代、扩展性差等问题,并引出了微服务架构的优势,包括独立部署、快速迭代、技术栈灵活性等。接着,书中详细介绍了微服务的分布式架构特点,强调了服务之间应保持独立性、专注于单一职责,并通过网络通信进行协作。

此外,作者还探讨了从单体架构迁移到微服务架构的几种常见模式,如领域驱动设计(DDD)、大爆炸模式(Big Bang)、绞杀者模式(Strangler)和混合模式(Hybrid)。其中,混合模式被认为是最适合大多数企业的迁移策略,因为它允许企业在保留部分单体架构的同时,逐步引入微服务,从而降低风险并快速实现业务价值。

第二部分:企业级Java微服务的实现

第二部分深入探讨了企业级Java微服务的具体实现。作者首先通过开发一个简单的RESTful微服务,展示了如何使用Java EE技术(如JAX-RS、CDI等)构建微服务。接着,书中讨论了如何选择适合微服务的轻量级应用服务器(JeAS),并对比了Dropwizard、Payara Micro、Spring Boot和Thorntail等流行的JeAS运行时。Thorntail因其灵活性和对Java EE功能的全面支持,被推荐为最适合企业级Java微服务的运行时。

在微服务的测试方面,作者强调了单元测试、集成测试和消费者驱动契约测试的重要性,并提供了相应的工具和实践方法。此外,书中还介绍了云原生开发的概念,包括云服务模型(如IaaS、PaaS、CaaS)以及如何使用Minishift和fabric8 Maven插件将微服务部署到本地云环境中进行测试。

微服务的高级主题

在高级主题方面,本书详细讨论了微服务之间的通信方式,包括如何使用Java客户端库(如java.net、Apache HttpClient)和JAX-RS客户端库(如RESTEasy)消费其他微服务。作者还介绍了服务发现的重要性,并展示了如何使用Thorntail的拓扑功能和Netflix Ribbon实现服务的注册与发现,从而简化微服务之间的调用。

在微服务的容错和监控方面,书中深入探讨了分布式架构中可能出现的故障类型,如网络延迟、超时等,并介绍了Hystrix框架如何通过断路器、隔离、回退机制等策略提高微服务的容错能力。此外,作者还展示了如何使用Hystrix Dashboard实时监控微服务的健康状态。

安全性是微服务开发中不可忽视的环节。本书详细介绍了如何使用Keycloak为微服务提供身份认证和授权功能,包括单点登录、社交登录、用户联邦等功能。作者通过实际案例展示了如何在微服务之间传递令牌,以及如何在用户界面中集成Keycloak实现用户认证。

微服务的混合架构实践

书中还探讨了如何将微服务架构与传统单体架构相结合,形成混合架构。作者以Cayambe项目为例,展示了如何将现有的单体应用逐步拆分为微服务,同时保留部分单体架构以实现平稳过渡。这一部分涵盖了如何在混合架构中集成支付微服务、管理微服务,以及如何通过Apache Kafka实现数据流的简化和实时更新。

总结

《Enterprise Java Microservices》是一本全面且实用的微服务开发指南。它不仅涵盖了微服务的基础理论和架构设计,还提供了丰富的实践案例和代码示例,帮助读者深入理解微服务的开发、测试、部署和安全性保障。无论是对微服务初学者,还是希望在现有企业级Java应用中引入微服务架构的开发者,这本书都是一本极具价值的参考书籍。

期待您的支持
捐助本站