一本专为java/spring开发人员准备的微服务实战指南

人邮异步社区      2022-05-17     365

关键词:

实现新架构不是一件容易的事情,它带来了许多挑战,如应用程序可伸缩性、服务发现、监控、分布式跟踪、安全性、管理等。这本《Spring微服务实战》(第2版)可以帮你解决这些难题。

《Spring微服务实战》(第2版)是一本专为Java/Spring开发人员准备的微服务实战指南,书中将介绍Spring中的微服务世界,讲解如何应对所有这些挑战,并展示将微服务应用于业务应用程序的权衡。你将学习如何使用诸如Spring Cloud、Spring Boot、Swagger、Docker、Kubernetes、ELK(Elasticsearch、Logstash和Kibana)、Stack、Grafana、Prometheus等技术来构建微服务应用程序。

Spring微服务实战(第2版)

1.本书将O-stock项目拆解划分成众多微服务,让它们运行在各自的Docker容器中,实现持续集成/持续部署。
2.作者在十几年的计算机工作中一直致力于软件开发,使用不同的语言和不同类型的软件架构,一直保持着好奇心与从业初心,不断地研究并将新知识应用到开发中
3.微服务将逐渐成为单体应用程序的替代方案,它通过将大型代码库分解为小的、定义良好的部分,帮助解决代码的复杂问题

本书以一个名为O-stock的项目为主线,介绍云、微服务等概念以及Spring Boot和Spring Cloud等诸多Spring项目,并介绍如何将O-stock项目一步一步地从单体架构重构成微服务架构,进而将这个项目拆分成众多微服务,让它们运行在各自的Docker容器中,实现持续集成/持续部署,并最终自动部署到云环境(AWS)的 Kubernetes集群中。

针对在重构过程中遇到的各种微服务开发会面临的典型问题(包括开发、测试和运维等问题),本书介绍了解决这些问题的核心模式,以及在实战中如何选择特定Spring Cloud子项目或其他工具(如 KeyCloak、Zipkin、ELK技术栈)解决这些问题。本书适合拥有构建分布式应用程序的经验、拥有Spring的知识背景以及对学习构建基于微服务的应用程序感兴趣的Java开发人员阅读。对于希望使用微服务构建基于云的应用程序,以及希望了解如何将基于微服务的应用部署到云上的开发人员,本书也具有很好的学习参考价值。

选择Spring微服务实战(第2版)的四大理由

这本书讲什么

本书组织结构

本书包含12章和3个附录。

  • 第1章介绍微服务架构为什么是构建应用程序,尤其是基于云的应用程序的重要相关方法。
  •  第2章介绍我们将使用的Spring云技术,并提供如何按照十二要素应用程序最佳实践构建云原生微服务的指南。本章还将介绍如何使用Spring Boot构建第一个基于REST的微服务。
  • 第3章介绍如何通过架构师、应用工程师和DevOps工程师的角度来审视微服务,并提供在第一个基于REST的微服务中实现某些微服务最佳实践的指南。
  • 第4章介绍容器,重点介绍容器和虚拟机之间的主要区别。本章还将介绍如何使用几个Maven插件和Docker命令来容器化微服务。
  • 第5章介绍如何使用Spring Cloud Config管理微服务的配置。Spring Cloud Config可帮助确保服务的配置信息集中在单个存储库中,并且在所有服务实例中都是版本控制和可重复的。
  • 第6章介绍服务发现路由模式。在这一章中,读者将学习如何使用Spring Cloud和Netflix的Eureka服务将服务的位置从客户的使用中抽象出来,还将学习如何使用Spring Cloud LoadBalancer和Netflix Feign客户端实现客户端负载均衡。
  • 第 7 章讨论如何在一个或多个微服务实例关闭或处于降级状态时保护微服务的消费者。这一章将演示如何使用Spring Cloud和Resilience4j来实现断路器模式、后备模式和舱壁模式。
  • 第8章介绍服务网关路由模式。使用Spring Cloud Gateway,我们将为我们的所有微服务建立一个单一入口点。我们将演示如何使用Spring Cloud Gateway的过滤器来构建可以针对流经服务网关的所有服务强制执行的策略。
  • 第9章介绍如何使用Keycloak实现服务验证和授权。在本章中,我们将介绍OAuth2的一些基本原则,以及如何使用Spring和Keycloak来保护微服务架构。
  • 第10章讨论如何使用Spring Cloud Stream和Apache Kafka将异步消息传递引入微服务。本章还介绍如何使用Redis进行缓存查找。
  • 第11章介绍如何使用Spring Cloud Sleuth、Zipkin和ELK技术栈来实现日志关联、日志聚合和跟踪等常见的日志记录模式。
  • 第12章是本书的基石项目。我们将使用在本书中构建的服务,将它们部署到亚马逊弹性Kubernetes服务(Amazon Elastic Kubernetes Service,Amazon EKS)。我们还将讨论如何使用Jenkins等工具自动构建和部署微服务。
  • 附录A展示额外的微服务架构最佳实践,并解释Richardson成熟度模型。
  • 附录B是OAuth2的补充资料。OAuth2是一种非常灵活的身份验证模型,这一附录简要介绍OAuth2可用于保护应用程序及其相应微服务的不同方式。
  • 附录C介绍如何使用Spring Boot Actuator、Micrometer、Prometheus和Grafana等几种技术来监控Spring Boot微服务。

阅读线路

总体上看,开发人员应该阅读第1~3章,这3章提供了关于最佳实践和在Java 11中使用Spring Boot实现微服务的基本信息。对于Docker新手,我们强烈建议仔细阅读第4章,因为它简要介绍了全书中使用的所有Docker概念。

本书的其余部分讨论了几种微服务模式,如服务发现、分布式跟踪、API网关等。阅读本书的方法是按顺序阅读各章,并遵循各章的代码示例。

本书的目标读者

  • 拥有构建分布式应用程序经验(1~3年)的Java开发人员。
  • 拥有Spring的知识背景(1年以上)的人。
  • 对学习构建基于微服务的应用程序感兴趣的人。
  • 对使用微服务构建基于云的应用程序感兴趣的人。
  • 想要知道Java和Spring是否是用于构建基于微服务的应用程序的相关技术的人。
  • 有兴趣了解如何将基于微服务的应用部署到云上的人。

关于作者

约翰·卡内尔(John Carnell)是一名软件架构师,为Genesys Cloud领导开发团队。约翰每天大部分时间都在教Genesys Cloud客户和内部开发人员如何交付基于云的呼叫中心和电话解决方案,以及基于云开发的最佳实践。

他使用AWS平台亲手构建基于电话的微服务。他的日常工作是设计和构建跨Java、Clojure和Go等多种技术平台的微服务。此外,他是一位高产的演讲者和作家。他经常在当地的用户群体发表演讲,并且是“The No Fluff Just Stuff Software Symposium”的常规发言人。在过去的二十多年里,他是许多基于Java的技术书籍和行业刊物的作者、合作者和技术审稿人。约翰拥有马奎特大学(Marquette University)学士学位和威斯康星大学奥什科什分校(University of Wisconsion Oshkosh)工商管理硕士(MBA)学位。约翰是一位充满激情的技术专家,他不断探索新技术和编程语言。当他不演讲、不写作或者不编码的时候,他与妻子Janet和3个孩子(Christopher、Agatha和Jack)以及他的狗Vader生活在北卡罗来纳州的卡里。

伊拉里·华卢波·桑切斯(Illary Huaylupo Sánchez)是一名软件工程师,她毕业于森福泰克大学(Cenfotec University),并拥有哥斯达黎加拉丁美洲科技大学(Latin American University of Science and Technology)的IT管理MBA学位。她在软件开发方面的知识相当广泛,拥有使用Java和其他编程语言(如Python、C#、Node.js)以及其他技术(如各种数据库、框架、云服务等)的经验。目前,她在哥斯达黎加圣何塞的微软公司担任高级软件工程师,在那里她将大部分时间花在研究和开发各种流行的最新项目上。

创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

你所不了解的微服务架构

...的项目也越来越“臃肿”。随着无数个版本的迭代,以及开发人员的不断增加,开发效率越来越低,每次投产的人力成本和时间成本都逐渐增加,我们一直在思索如何能破局。评估了 查看详情

微信公众号开发记录

...页链接的一个应用,所以记录一下碰到的关键点。 开发前准备具有网页授权的微信公众号/开发者账号因为我们这里有准备好的微信公众号,所以没什么问题,就是公众号需要开通相关的接口。 开发环境需要的服务... 查看详情

视图层次结构未准备好

...02-2520:59:56【问题描述】:我是一名新手Swift开发人员,在一本优秀的iOS9Swift书籍中遵循代码示例。这本书刚刚演示了如何在视图层次结构的两个不同分支中的两个对象(标签、按钮)之间添加约束(在代码中)。myLabel位于viewBB... 查看详情

iOS 9:低能耗 -> 开发人员必须为此做好准备吗?

】iOS9:低能耗->开发人员必须为此做好准备吗?【英文标题】:iOS9:lowenergy->dodevelopershavetoprepareforthat?【发布时间】:2015-06-1615:45:23【问题描述】:在WWDC2015的主题演讲中提到,电池的续航时间将延长一小时,并且处于低电量... 查看详情

c#微服务必学清单

...GitHub:https://github.com/ThreeMammals/Ocelot2.Steeltoe:Steeltoe是一套专为.NET开发者设计的微服务工具集,提供了诸如配置管理、服务发现、断路器等功能。Gi 查看详情

Chrome 和 Firebase 推送通知服务人员未准备好

】Chrome和Firebase推送通知服务人员未准备好【英文标题】:Chrome&FirebasePushNotificationsserviceworkernotready【发布时间】:2016-11-0717:54:35【问题描述】:在关注此代码实验室时:https://developers.google.com/web/fundamentals/getting-started/codelabs/p... 查看详情

“逃离”单体,github的微服务架构实践

...详细说明。1旅程开启GitHub创建于2008年,其宗旨是为开发人员托管和分享代码提供便利。GitHub的创建者也是开源贡献者, 查看详情

“逃离”单体,github的微服务架构实践

...详细说明。1旅程开启GitHub创建于2008年,其宗旨是为开发人员托管和分享代码提供便利。GitHub的创建者也是开源贡献者, 查看详情

常见的3种微服务治理方式

...微服务本身通过代码去解决,这样的解决方案无疑会消耗开发人员的时间和精力。类似的问题在大部分的微服务场景中都会出现,显然也会带来更多的代码重复。在分布式服务早期,许多互联网企业就经历过这一过程,微服务之... 查看详情

微服务改造—架构设计

...本次讨论会的成员来自技术部门的架构组和各个业务能力开发组的主要开发人员,同时也邀请了华为的软件专家现场指导。从参与人员上来看,既有能够总览公司当前现状的架构师,也有开发经验开发的一线开发人员(覆盖多数... 查看详情

基于新浪云服务器的微信公众号(代码片段)

...服务器调用ONENET平台数据一、前提准备​查阅ONENET平台的开发者文档https://open.iot.10086.cn/doc/​查阅微信公众号的开发者文档:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html/​php的curl函数:https://www.cnblogs.co... 查看详情

推荐一款基于springcloudalibaba的微服务快速开发平台(matecloud)

MateCloud,推荐一款基于SpringCloudAlibaba的微服务快速开发平台🍟项目简介MateCloud是一款基于SpringCloudAlibaba的微服务架构。目前已经整合SpringBoot2.5.3、SpringCloud2020.3、SpringCloudAlibaba2021.1、Nacos2.0.3、Sentinel1.8.2、SpringSecurity 查看详情

从0开始的微服务架构:重识微服务架构

...”正变得越来越重要,也将继续火下去。各个公司与技术人员都在分享微服务架构的相关知识与实践经验,但我们发现,目前网上的这些相关文章中,要么上来就是很有借鉴意义的干货,要么就是以高端的专业术语来讲述何为微... 查看详情

基于servicestage的微服务开发与部署

...,单击"创建组织"。设置组织名称(此处以spring 查看详情

开发人员的最佳数据库书籍[关闭]

...间】:2011-04-1201:15:34【问题描述】:我想为开发人员下载一本好的数据库书籍,你能指导我并给我发送好的链接以找到一个好的。我正在使用SQLServer2008。【问题讨论】:LookingforagoodbooktolearnSQL的可能重复这个问题已经被问过很多... 查看详情

为开发人员记录访问应用程序 [关闭]

...Access应用程序。这是一个有趣的情况,因为他们想要的是一本手册,以便未来的开发人员可以在没有先验领域知识的情况下进入并及时对前端或后端进行更改。对于这个小项目, 查看详情

从0开始的微服务架构:如何快速体验微服务架构?

...”正变得越来越重要,也将继续火下去。各个公司与技术人员都在分享微服务架构的相关知识与实践经验,但我们发现,目前网上的这些相关文章中,要么上来就是很有借鉴意义的干货,要么就是以高端的专业术语来讲述何为微... 查看详情

推荐一款基于springcloudalibaba的微服务快速开发平台(matecloud)(代码片段)

MateCloud,推荐一款基于SpringCloudAlibaba的微服务快速开发平台🍟项目简介MateCloud是一款基于SpringCloudAlibaba的微服务架构。目前已经整合SpringBoot2.5.3、SpringCloud2020.3、SpringCloudAlibaba2021.1、Nacos2.0.3、Sentinel1.8.2、SpringSecurity 查看详情