在写这本书之前,我先后在两家杭州的“独角兽”公司担任技术负责人,并推进公司核心业务的“中台化”改造。在落地业务中台和技术中台的过程中,督促并指导开发人员统一使用Spring Cloud Alibaba作为中台服务最底层的基础框架。为了快速推进业务服务Spring Cloud Alibaba化的进度,我冲在业务的第一线,收集和整理开发人员在使用Spring Cloud Alibaba过程中反馈的技术问题,并提供有效的技术解决方案,直至项目落地。
我每周都会做技术复盘,通过分析大量的问题总结出一个结论:开发人员反馈的问题大部分都是由于Spring Cloud Alibaba使用不合理所造成的。也就是说,很多开发人员并不了解Spring Cloud Alibaba的原理及如何落地实践。于是,我就产生了把我这几年落地Spring Cloud Alibaba的经验通过图书的方式输出的想法。
我写本书的主要目的也是为了让大家能够学到新的技术,并告诉大家有这些技术可以为大家所用。
当初定的目标让大家能够学到如下知识。
(1)掌握Spring Cloud Alibaba的核心原理及微服务架构项目实战经验;
(2)掌握Nacos注册中心和配置中心的核心原理及微服务架构项目实战经验;
(3) 掌握Sentinel的核心原理及微服务架构项目实战经验;
(4) 掌握 Seata的核心原理及微服务架构项目实战经验;
(5)掌握RocketMQ的核心原理及微服务架构项目实战经验;
(6)掌握Skywalking的核心原理及微服务架构项目实战经验;
(7)掌握Elastic Job的核心原理及微服务架构项目实战经验;
(8)掌握ShardingSphere的核心原理及微服务架构项目实战经验;
(9)掌握Spring Cloud Gateway的核心原理及微服务架构项目实战经验;
(10)掌握分布式缓存Redis的集群管理和分布式锁的原理及微服务架构项目实战经验;
(11)掌握Discovery的核心原理及微服务架构项目实战经验;
(12)掌握在业务中台和技术中台中落地“基于Spring Cloud Alibaba微服务架构”的项目实战经验;
(13)掌握在微服务架构中“基于DataX的异构数据迁移“的项目实战经验;
(14)掌握在微服务架构中“基于Skywalking的链路告警平台“的项目实战经验;
(15)掌握在微服务架构中“基于ELK和Sywalking的全链路日志平台“的项目实战经验;
Part.1 本书特色
本书聚焦于Spring Cloud Alibaba微服务架构实战,全面分析了基于Spring Cloud Alibaba的微服务架构全栈技术原理。本书有如下特色:
(1)技术新
Spring Cloud Alibaba是一个将Spring Cloud“阿里巴巴化”的微服务架构框架,它具备Spring Cloud 所有的能力,并添加了Nacos、Dubbo、RocketMQ等 Spring Cloud不具备的微服务架构能力。简单来说就是:搭建微服务架构,使用Spring Cloud ALibaba比使用Spring Cloud 更高效,更简单,开发的技术成本更低。
本书中所有代码采用目前的Spring Cloud Alibaba的最新版本(2.2. 5.RELEASE)来编写,与Spring Cloud Alibaba相关的微服务技术(Seata、RocketMQ等)也采用的是目前最新的稳定版本。
(2)精心设计的主线:零基础入门,循序渐进,直至项目实战。
本书精心研究了程序类、架构类知识的认知规律,全书总共分为五个部分:入门篇、基础篇、中级篇、高级篇及项目实战篇,设计了一条相对科学的主线“它是什么→怎么进行基础环境搭建→怎么搭建基础开发环境→怎么进行单项技术开发→怎么完成一个完整的项目”,让读者快速从菜鸟向微服务架构实战高手迈进。
(3)不只介绍Spring Cloud Alibaba框架本身,而是微服务架构全栈技术。
有的同类书只介绍Spring Cloud Alibaba框架本身,假定读者对支撑Spring Cloud Alibaba微服务架构相关技术(比如Seata、Skywalking、Redis、RocketMQ等)是了解的。那就会存在一个问题——为了学会微服务技术,得找Spring Cloud Alibaba的书、Seata的书、RocketMQ的书……而这恰恰是难点所在“怎么它们怎样平滑地衔接起来学习”。一只鸡所有的毛全在,可搭出一只鸡并不是容易的事。
本书是以“实现完整的Spring Cloud Alibaba微服务架构”为目标,为了这个目标,除了Spring Cloud Alibaba这个“主角”外,对于支撑Spring Cloud Alibaba微服务架构全栈技术(比如Seata、Skywalking、Redis、RocketMQ等)也基本都是从头讲起,保证读者平滑学习。本书是“一站到底”的解决方案:读者只需从这里上车,中途无需转乘,需要什么提供什么,直达终点。
(4)绘了大量的图,便于理解原理、架构、流程。
一图胜千文,书中在涉及原理、架构、流程的地方都尽量配有图,以便读者了直观的理解。
(5)实战性强。
本书用大量的实战案例,能让读者动手动起手来,在真实效果中体会功能,而不只是一种概念上的理解。
在讲解每一个知识模块时,我们都在思考:在这个知识模块中,有哪些是读者必须用实现的“标准动作”(实例);哪些“标准动作”是可以先以完成的,以求有快速有一个感知认识;哪些“标准动作”是有一定难度,需要放到后面完成的。读者在跟随书中实例一个个实践之后,再去理解那些抽象的概念和原理就是水道渠成了。
本书的一个目标就是,让读者在动手中学习,而不是“看书时好像全明白了,一动手却发现什都不会”。本书相信“知行合一”理念,不是“只知,而无行”,避免眼高手低。
(6)深入剖析原理。
本书以系统思维的方式,从业务功能视角去剖析微服务架构中技术的底层原理,使读者具备快速阅读新框架源码的能力,只有具备了这种功能,才能在今的让读者能够举一反三,实现更复杂的功能,应对更加复杂的应用场景。
(7)真实项目,实现“从树木到森林”的突破。
本书“项目实战篇”,是从架构、代码和业务的视角,在业务项目中验证“Spring Cloud Alibaba微服务架构”的架构方法论及核心技术原理,读者可以有身临生产级场景的感觉。
(8)衔接运维,一键部署。
本书中所有的技术框架,都会有详细的“搭建技术框架运维环境的步骤”,读者只需要按照本书的安装步骤,就可以快速搭建运维环境,从而在本地环境中快速运行本书的实例。
(9)干货丰富,知识的“巨无霸”。
本书共分为上下两册总计18章,近1000页,内容非常丰富,算得上是这个领域知识的“巨无霸”。
Part.2 微服务架构是后端开发绕不开的一个话题
也许很多人都觉得“微服务”不是早就过时了吗?这个概念很早就出来了,都被玩烂了,但是我这里想说的是真是这个样子的吗?
假如“微服务”过时了,那为什么现在又在搞“数字化”了,数字化的本质不就是要用互联网技术解决非互联网领域的技术问题吗?也就是还需要用微服务去落地业务。
也许微服务是被互联网公司自己玩烂了,确实现在微服务框架都开始烂大街了,各种层出不穷的轮子框架,总会让我们觉得它是一片红海,大家都在分割这块本来就很小的蛋糕。
“微服务”这个概念确实出来了好多年,但是中国企业太多了,传统企业也非常的多,它们很多都没有接触过微服务,这一块的市场是非常的大的,不然为什么现在主流的云平台,比如阿里云、华为云等的市场份额那么大,人家每年几百亿的收入从哪里来的呢?
微服务架构其实是非常的重要的,只是我们还没有真正的做到它的精髓。
首先,微服务架构可以让我们更好地满足业务需求。在传统的单体式架构中,应用程序通常是集成到一个单一的应用程序中。然而,在大型企业中,这样的设计会导致系统的复杂度和耦合度增加。而微服务架构则将应用程序拆分成小模块,每个模块都有一个特定的职责。这样可以降低代码库的复杂性,并且不同模块之间更容易协调、交互。
其次,微服务架构可以提高团队效率。由于每个小模块都有自己的职责和功能,因此每个团队负责某一个特定的小模块就可以完成特定功能开发。这样做不仅能够提高团队对于各自最有利益点任务的完成效率,并且还能提高整个系统开发上线速度。
最后,微服务架构可以提供更好地容错性和可伸缩性。由于整个系统被拆分成了多个小模块并且各自运行,在出现故障时只需要处理出现故障的小模块即可提高系统容错性。同时对于应用部署、监测、管理等等需求也是非常灵活方便。
所以总结来说微服务架构非常重要!
(1)它能够提高代码库的清晰度和方便管理协调;
(2)实现团队互助协作;
(3)并且具备很好地容错性和可伸缩性。
Part.3 微服务架构是云原生的必经之路
云原生是一种软件开发、交付和部署方式,当然,也是一种理念。它强调将应用程序打包成容器并将其部署在基础架构上的方法。这使得应用程序更加可靠、可伸缩性更强、更易于管理和维护。
你可能会想:“这不就是容器技术吗?”,但实际上它还远不止于此。云原生还包括使用微服务架构、自动化运维、持续交付(CI/CD)等现代软件开发方式。这些方式都有一个目标:为了实现更快速、高效、安全地构建和运行软件。
云原生架构能够解决什么问题?
首先,让我们来看看传统的应用程序架构。在这种架构下,应用程序是以单体应用程序的形式部署的。这意味着所有组件都在同一个容器中运行。这种架构可能会导致一些问题:
1. 可伸缩性受限:如果您想扩展某个组件,您需要增加整个容器。
2. 安全性不足:由于所有组件都在同一个容器中运行,因此任何一个组件出现漏洞都会影响整个容器。
3. 故障恢复时间长:如果容器中的任何一个组件崩溃了,这将导致整个容器被关闭。然后,在修复该组件之前,整个应用程序将无法运行。
但是云原生架构可以解决这些问题!云原生应用程序是由多个微服务组成的。每个微服务都可以独立地部署并运行。云原生应用程序在以下方面优于传统的单体应用程序:
1. 可伸缩性更强:每个微服务都可以根据需要进行扩展。
2. 安全性更高:每个微服务都有自己的安全机制,并且它们可以相互通信以确保整体安全性。
3. 故障恢复时间更短:如果其中一个微服务出现故障,则只有该微服务将被关闭,并且其他微服务仍将继续工作。
总之,云原生架构可以提高可靠性、可扩展性和安全性,并帮助您快速实现故障恢复。
我相信现在企业都在潜移默化的在走云原生的架构之路,只要你正在使用云平台去提效,就算只是使用云平台提供的服务器,那么你也会是一个潜在的云原生的客户。
云原生是未来架构和企业交付产品的必经之路,这个是行业内的专家一致认同的,它也是云计算的衍生产品,也是云计算发展起来的产品。
前面也说到了云原生不仅仅只有容器技术(所谓的Docker,其实并只是有Docker,还有很多其他的容器技术),而且也不仅仅只有所谓的K8s(它仅仅是管理容器的技术之一),更重要的是“微服务架构”,一切云原生架构是都是建立在微服务架构的基础之上的。
或许很多人又在问,我们企业没有做微服务架构,不照样落地了云原生,并且也接入了云平台吗?
我想给大家解释的是,微服务架构解决的是可扩展和可伸缩,假如微服务架构和云原生结合起来,那么云原生是不是更好落地呢?
Part.3 输出云原生架构实战派
Spring Cloud Alibaba微服务架构实战派上下册这本书也是在为我做下一本书云原生架构实战派做准备的。
这个也是沿着开发人员体系化的学习新技术的思路来的,懂了微服务架构,我们就必须要懂云原生架构,并看看在云原生的背景之下,我们是如何玩微服务的。
另外我的新书“RocketMQ分布式架构实战派”已经完全定稿了,就等着上架了。
另外我的新书RocketMQ消息中间件实战派上下册,在京东已经上架啦,目前都是5折,非常的实惠。
https://item.jd.com/14337086.html编辑https://item.jd.com/14337086.html
“RocketMQ消息中间件实战派上下册”是我既“Spring Cloud Alibaba微服务架构实战派上下册”之后,又一本历时超过1年半的巨无霸技术实战类型的书籍。
为了提高读者阅读本书的体验性,本书总共设计了十个特色,下面我一一的给技术小伙伴阐述一下。
【特色一】由浅到深
本书将RocketMQ的技术原理和最佳实践体系化,按照由浅到深的顺序呈现给读者,使读者可以按照章节顺序按部就班地学习。当学习完全书内容之后,读者不仅能熟悉RocketMQ的核心原理,还能充分理解RocketMQ的“根”。
【特色二】技术新
本书不仅包括RocketMQ4.x(4.9.2版本)的核心原理分析和最佳实践,还包括RocketMQ5.x(5.1. 0版本)的新特性分析和最佳实践。
【特色三】精心设计的主线:零基础入门,循序渐进,直至彻底掌握RocketMQ
本书精心研究了程序类、架构类知识的认知规律,全书共分为6篇:①基础;②进阶;③高级;④高并发、高可用和高性能;⑤应用;⑥新特性,是一条相对科学的主线,让读者快速从“菜鸟”向“RocketMQ分布式架构实战高手”迈进。
【特色四】绘制了大量的图,便于读者理解RocketMQ的原理、架构、流程
一图胜于文,书中在涉及原理、架构、流程的地方配有插图,以便读者更加直观地理解。
【特色五】从架构师和技术专家的视角分析RocketMQ
本书创造性地分析了RocketMQ具备高并发、高可用和高性能的功能及原理,并从架构的视角展开分析,这些也是程序员进阶为技术专家或架构师必备的技能。
以下为从架构师和技术专家的视角分析RocketMQ典型案例,读者阅读完本书之后,也能够达到这样的水准。
【特色六】不仅有原理分析,还有大量的实战案例
本书介绍了大量的实战案例,能让读者“动起来”,在实践中体会功能,而不只是一种概念上的理解。
在讲解每一个知识模块时,我在思考:在这个知识模块中,哪些是读者必须实现的“标准动作”(实例);哪些“标准动作”是可以先完成的,以求读者能快速有一个感知;哪些“标准动作”具有一定难度, 需要放到后面完成。读者在实践完书中的案例之后,就能更容易理解那些抽象的概念和原理了。
本书的目标之一是,让读者在动手中学习,而不是“看书时好像全明白了,一动手却发现什么都不会”。通过体系化的理论和实战案例去培养读者的主动学习能力,这样本书的价值就会被最大化。
本书相信“知行合一”的理念,而不是“只知,而不行”,避免开发人员出现眼高手低的现象。尤其是在技术面试过程中,面试官更加看重的是既懂原理,又能够主动是实践技术的技术人。
【特色七】深入剖析原理
本书以系统思维的方式,从业务功能视角剖析 RocketMQ 底层的技术原理,使读者具备快速阅读 RocketMQ 框架源码的能力。读者只有具备了这种能力,才能举一反三,实现更复杂的功能,应对更复杂的应用场景。
【特色八】从运维的视角分析 RocketMQ 的最佳实践
【特色九】参与开源
本书向读者展示了如何修改 RocketMQ 源码,并快速验证案例分析。这样,读者可以从中学到参与开源的技能,并为后续自己能够参与开源做准备。
【特色十】双色印刷,读者体验会更好
为了提高读者阅读本书的体验,在有上下两册的前提下(巨无霸,超过800页),出版社不吝啬印刷成本,依然采用双色印刷。
【推荐】本书的最佳学习路径
为了提高读者学习RocketMQ的效率,我这边结合我自身从RocketMQ小白到RocketMQ专家的经历,为读者汇总了一条最佳学习路径。
【寄语】作者寄语
RocketMQ是我深度参与研究的一款开源消息中间件,无论是从源码,还是架构场景,我都提炼了很多最佳实践。
在开源领域,技术小伙伴可以使用的开源消息中间件非常的多,比如Kafka、Pulsar等,我之所以选择研究RocketMQ,除了工作内容和角色需要之外,更多的还是自己感兴趣,因此我建议技术小伙伴一定要先培养自己的兴趣,兴趣才是提升技术硬实力的第1要素。
当然我并不止研究了RocketMQ,还研究了Pulsar和Kafka等(包括开源消息中间件生态中的主流框架),只是本书作为一本关于RocketMQ实战派的书籍,我必须要以RocketMQ为主。
假如技术小伙伴想成为Java领域的架构师或者技术专家,我强烈建议你去研究RocketMQ,它会给你带来很多意想不到的技术和架构方法论的收获,这个也是我写本书的主要目的之一。
建议技术小伙伴按照本书设计的学习路线,逐章的去阅读和实战,这样学习效果会更好。
如果技术小伙伴有技术交流的,可以通过博文视点官方的读者群找到我的联系方式,并与我沟通,我会实时的解答读者的疑问。
本文公众号“架构随笔录”
本人视频号“架构随笔录”
【博文视点】2021年度优秀作者
2021年我和博文视点合作了一本技术类型的书籍“Spring Cloud Alibaba微服务架构实战派上下册”,它是我涉足知识输出领域以来的第一本书,同时它也是我自己积累的技术池中部分技术的产出。
为了写好那本书,我几乎花费了所有的休息时间,并主动的承担了书的售后技术辅导和咨询的职责(几乎是有问必答,坚持了整整两年)。
所谓有付出总会有回报,Alibaba这本书的销量还不错,我也因此获得了博文视点颁发的2021年度优秀作者。
我很清楚,这个是博文视点为了鼓励我继续去用心写书,因此我又花了接近1年半的时间去写了RocketMQ消息中间件实战派上下册这本书。
所谓一分耕耘一份收获,我将我对RocketMQ的理解体系化的输出给喜欢技术的技术人,希望真的对大家有帮助。
【博文视点】2023技术成长领路人
2022年,我开始涉足技术直播和技术讲师领域,并和博文视点合作几次技术直播,直播效果还不错,再加上我孜孜不倦的布道“Spring Cloud Alibaba微服务架构实战派上下册”这本书相关的技术,并且这些技术都是有助于“技术人”快速成长的,因此也获得了博文视点颁发的“2023技术成长领路人”这个技术奖项,这个奖项也是为了鼓励我继续通过技术直播的方式给技术人去布道技术,因此只要我有时间,我就会孜孜不倦的去讲和聊技术。
【四维口袋】2022 KVP最具价值技术专家
2022年,我开始涉足企业培训和相关技术直播,并和“四维口袋”合作了几次技术直播,并荣获了2022 KVP最具价值技术专家的技术奖项。