发布时间:2023-09-15 09:00
通过采用微服务架构,企业最大的收益是帮助内部IT建设沿着可演进的方向发展、支持灵活扩展、降低运维成本、快速响应业务变化。
这些底层技术能力的提升让业务更加敏捷、成本可控,企业也可以从中获得技术红利和市场的竞争优势。
那么有什么方法可以让我们在较短的时间内掌握并且能够游刃有余地发挥微服务带给我们的开发成效呢?
看书显然是一条捷径,有人给你整理好,并且成本非常低。
目前市面上不乏介绍各种微服务开发框架和技术实践的书籍,也有专注于微服务理论知识的讲解,但总觉得看了不解渴。
因此,王佩华老师希望通过理论与实践结合,层次分明、由浅入深地将微服务架构梳理清楚,并呈现给不同学习阶段的人群。
于是,《微服务架构深度解析:原理、实践与进阶》诞生了!
本书的主要特色
平衡了微服务的理论与实践工程
微服务架构技术栈全面覆盖
生命周期完整的软件工程历程介绍
Spring Boot框架及Spring Cloud核心组件的源码解析
互联网开源项目成功落地及大厂推广经验
响应式微服务编程范式升级进阶
本书内容剧透
在理论篇,可以带领新人快速入门微服务架构。
在实践篇,可以让实际的开发者深入Spring Boot和Spring Cloud源码,解决实际工作中的问题,掌握分布式系统构建的经验。
在进阶篇,响应式编程和云原生架构是高阶人群重点关注领域和技术趋势。
通过这样渐进式的讲解和梳理,搭建一个微服务架构师所需要具备的完整架构体系和知识技能框架。
▊ 微服务架构理论
虽然微服务的发展已经相对成熟,但是依然有很多开发人员或管理者对微服务的概念及理论存在理解上的误区。
典型的理解误区是将某种技术框架或者编程风格与微服务相混淆;此外,还有将容器技术等同于微服务架构的误解。
针对上述问题,本书系统性地介绍了微服务概念的背景来源、不同版本定义及“最佳实践”集合的微服务特征介绍。
在“架构设计哲学”一节中,本书将微服务架构与UNIX设计哲学进行了创新性的概念比对和关联,可以更加深刻地理解微服务架构的理论内涵。
在“微服务与云原生”一节中,本书总结了微服务与云原生架构的关系,以及云原生成熟度的分层等级,从中扩展了微服务架构的概念外延。
此外,采用微服务架构需要有一定的使用场景和约束条件,如果不加思索地在项目中使用微服务,将紧耦合的模块强行拆分,反而化简为繁,增加了系统的复杂度和团队的运维负担。
为此,书中列举了多种微服务使用场景,以及微服务架构的采用前提。另外,通过揭示组织结构、研发流程与技术之间隐含的隐射关系,我们可以更深入地了解他们对微服务架构产生的影响。相信通过这些内容的介绍可以快速帮助工程师做出决策,避免陷入困境。
▊ 使用微服务构建业务应用
微服务架构快速发展的一个主要驱动力来自业务应用的规模增长,以及对业务复杂性的有效控制。
相比传统的单体架构,微服务架构强调将业务应用与底层的非功能需求、第三方软件进行最大化的剥离,使应用服务聚焦在业务核心逻辑处理上,而不是将精力耗费在非业务功能上。
传统的单体架构在微服务化转型过程中,面临服务拆分以及服务复用,服务之间接缝设计等众多问题,在“微服务构建”一章中,我们针对业务开发人员关心的微服务模块划分、业务领域建模、服务如何扩展等问题通过实际项目案例进行详尽解析。
“领域驱动设计的核心概念”一节,讲解了如何使用领域模型将产品需求与代码实现进行映射关联,如何将业务中容易变化的元素与核心业务逻辑进行解耦。
通过“业务运营监控项目”实际案例,从理解问题域、整理需求文档、提炼问题域、挖掘隐藏的核心领域模型、服务拆分、定义界限上下文、领域建模等步骤进行阐述,通过一系列的慢动作拆解,让你可以清晰了解整个微服务构建的设计过程。
“微服务化改造”一节对微服务改造的时机、常见的技术债务、微服务改造模式进行了全面的总结。
“微服务构建进阶”一节从更宏观的软件构建视角切入总结微服务构建的最佳实践。通过总结若干架构原则,作为指导系统设计和编程的开发约束,使得系统构建不会出现大的偏差。
▊ 微服务架构之Spring Cloud技术生态
传统的单体架构基于Tomcat中间件或者J2EE模型,很多都是建立在IDC机房和小型机基础之上的,这种臃肿的架构已经无法满足互联网公司快速增长的业务规模,同时随着云计算时代的到来,过去应用部署的打包方式和运行方式都难以支撑快速的业务迭代。
在“脚手架”一章中,通过源码详解一步步带你了解Spring Boot以注解为核心的“约定大于设计”的设计理念、强大的自动装配机制、Spring Boot启动以及扩展点设计的详细流程。
Spring Boot常用的Starter、如何实现自定义Starter、生产就绪特性、安全管理机制、Spring Boot 嵌入式Web容器的启动原理都将逐一详解。
Spring Cloud作为开源社区最为完整的微服务架构开发者平台,为开发人员提供了分布式系统需要的注册中心、配置中心、断路器、负载均衡等关键组件和微服务治理核心能力。本书通过对这些组件的原理介绍、使用案例、源码分析,带领开发者逐步掌握构建微服务架构的核心治理组件。
Spring Cloud技术生态主要解决的是微服务架构的服务治理技术复杂性问题。社区通过提供一系列开源工具和框架解决微服务架构面临的网络动态性、高可用、高并发流量控制、弹性、容错性等等问题。而这些分布式组件在开发中所经常遇到的核心知识点和难点,以及如何扩展开发都将在书中为大家分析解答。相信对于类似的微服务技术或组件也能触类旁通,举一反三。
▊ 微服务与分布式中间件
微服务化架构给系统在软件工程代码结构、应用交互方式、数据存储模式上都带来了极大的变化。
单体独立进程下CPU的控制逻辑和模块之间耦合、隔离问题需要向分布式系统下的I/O传输控制进行复杂性转移。
这里就面临如何使用合理的分布式中间件进行系统的集成、ORM数据存储等解决方案。
“系统集成”一章体系化地梳理了影响微服务与微服务之间交互集成效率的三个主要因素:网络协议、I/O模式以及序列化方式。
“Rest服务集成”一节详细地讲解了REST成熟度模型以及REST的重要核心概念,介绍了Restful架构与HTTP协议关系以及Swagger接口文档规范,还讲解了Feign、JAX-RS等主流分布式框架源码解析及原理分析。
“RPC远程过程调用”一节详细带你了解主流的RPC框架,包含Dubbo分布式框架的RPC调用过程、源码跟踪以及SPI机制分析,还有Spring Cloud集成gRPC及gRP远程调用源码分析。
在“MOM消息队列”一节,对Spring Cloud Stream分布式消息处理框架,基于透明的消息驱动模式,进行了深入的源码分析与解析。此外,还对Kafka、RabbitMQ的应用场景和特性进行了介绍,并通过案例介绍如何使用SCS框架进行事件驱动的架构模型开发。
在微服务与存储之间,介绍了微服务框架经常使用Spring Data框架,以及微服务架构下分布式事务一致性的常见解决方案。
需要说明的是这些分布式中间件在我们的微服务架构体系中依然还是有侵入性的问题,随着云原生架构的普及,这些中间件正在逐步下沉到网格层,并逐渐与业务进程分离,目标是成为语言无关的普惠技术,正如现在有一些消息服务中间件已经脱离了本地代码包的依赖,这将是一个微服务架构发展的趋势,越来越多业务应用也将从中受益,变得更加灵活、轻便。
▊ 微服务的Devops方法论
Devops的目标是小步快跑,使快速迭代、频繁发布、开发运维一体化。
对于由数十人合作集成开发的项目,协作过程是一件困难的事情,系统顺畅的持续集成、持续发布需要一个规范化和流程化工具以可视化的方式完成自动化交付并形成闭环。
在”微服务交付”一章中,我们详细地介绍了“容器”作为微服务化的一个标准交付单元,如何将应用以及应用依赖的环境打包,使得部署交付不再受到环境限制。通过Docker构建部署交付过程的详细解析,掌握容器带给我们快速交付的技能。
在“服务监控治理”一章中,我们通过对监控系统的原理进行介绍和对监控进行分类,体系化地掌握监控系统的指标类、日志类、调用链类三种监控治理手段和常用的技术栈。
在“指标型数据监控”一节,对于喜欢Java底层字节码拦截技术的开发者可以学习到JavaAgent技术、JVM的instrument机制以及Javaassist框架等技术。你可以将这些技术快速地应用到实际的业务和应用场景中去。
▊ 拥抱响应式编程和云原生
在微服务开发领域,Spring5集成Reactor响应式框架为Java开发者带来了编程模型和编程范式的革命性的技术,从Spring Boot2到Spring Cloud生态体系,面向函数式编程以及使用响应式框架可以应对快速响应、扩展性、易于维护等方面的业务。
在“响应式编程”一节,书中通过实际的Bench Mark分析,详细地解释了响应式编程的动机,分析在用户激增场景下,系统内部的结构性瓶颈限制对系统的可伸缩性的影响。
在“响应式技术框架”一节, 书中详细介绍了目前主流的响应式框架技术,包含JDK9中响应式框架标准以及Flow API、RxJava响应式框架、Spring技术生态下的Reactor框架、VertX响应式框架。
书中对Spring Boot 2.x响应式编程框架的核心组件、Spring WebFlux框架的源码解析以及原理进行了介绍,同时比较了Spring MVC框架与Spring WebFlux的差异以及优劣势。对Spring Cloud Gateway项目介绍了核心概念、工作原理、源码分析,并基于Spring Cloud Gateway源码实现了动态路由功能的二次开发以及代码讲解。
Kubernetes已经成为容器编排的事实标准,并成为微服务应用的最佳部署管理平台。从微服务生态的角度,相比Spring Cloud,Kubernetes拥有更加完整的、技术栈多样性支撑生态,提供更加广泛的微服务组件和基础设施能力。本书重点介绍了Kubernetes的微服务化设计理念以及与Spring Cloud生态融合的项目。
“微服务的发展趋势”一节对云原生架构进行了详尽的阐述,并介绍了Java在云原生架构下的应用优化策略,以及Service Mesh和Serveless技术的发展趋势。
业界专家力荐
▊《微服务架构深度解析:原理、实践与进阶》
王佩华 著
十多年经验集大成
从分布式到微服务,从SpringBoot到SpringCloud各组件,从Docker到Kubernetes,从领域驱动设计到响应式编程和云原生
本书从微服务架构的设计理念和方法论切入,从不同角度全面介绍微服务特性、使用场景、组织流程、构建交互、部署交付等软件工程各个关键环节和核心要素,既包含了具体微服务技术的源码解读、原理分析,也加入了作者在电信、金融领域积累的真实案例和实践经验。
本书不仅适合初学者深入理解微服务架构,也可以作为团队管理者或者架构师进阶微服务架构的技术参考手册。
(满100减50,快快扫码抢购吧!)
如果喜欢本文
欢迎 在看丨留言丨分享至朋友圈 三连
点击阅读原文也可购买哦