全部商品分类

您现在的位置: 全部商品分类 > 电子电脑 > 计算机技术 > 硬件及维护

高可用可伸缩微服务架构(基于Dubbo Spring Cloud和Service Mesh)

  • 定价: ¥108
  • ISBN:9787121362132
  • 开 本:16开 平装
  •  
  • 折扣:
  • 出版社:电子工业
  • 页数:505页
  • 作者:程超//梁桂钊//秦...
  • 立即节省:
  • 2019-05-01 第1版
  • 2019-05-01 第1次印刷
我要买:
点击放图片

导语

  

    基于Dubbo、Spring Cloud、Service Mesh等技术来构建微服务体系。
    深入浅出地介绍微服务架构发展历程、领域驱动设计、稳定性保证的常用手段、分布式事务的一致性方案。
    通过大量的案例探讨微服务落地方案,例如双活体系建设、分布式监控、微服务编排、百亿流量微服务网关的设计与实现、基于支付场景下的微服务改造等。
    展示实现微服务架构的完整蓝图,并让读者了解如何借助微服务来增强和重构现有的遗留系统。

内容提要

  

    近年来微服务架构已经成为大规模分布式架构的主流技术,越来越多的公司已经或开始转型为微服务架构。本书不以某一种微服务框架的使用为主题,而是对整个微服务生态进行系统性的讲解,并结合工作中的大量实战案例为读者呈现一本读完即可落地的工具书。书中的理论部分介绍了微服务架构的发展历程,深入通俗地讲解了领域驱动设计,帮助读者更好地利用DDD来建模和划分服务;稳定性保证的常用手段和分布式事务的一致性方案这两章凝聚了作者多年的积累和思考,相信读者看完后会有不一样的感触和收获;书中实战部分的内容非常丰富,以项目为基础,逐层介绍常见的Dubbo、Spring Cloud和Service Mesh框架的具体使用方法,并对实现原理进行剖析;书中还以具体案例全面介绍了微服务双活体系建设、微服务监控与告警、微服务编排、百亿流量微服务网关的设计与实现,以及基于支付场景下的微服务改造等,并让读者了解如何借助微服务来增强和重构现有的遗留系统。

媒体推荐

    经历了系统从单体架构到ESB企业总线架构,再到全面的微服务化架构的整个改造过程,深知微服务看似美好,但在企业中落地实施其实是一件很困难的事情,本书不仅从理论高度上阐述了微服务架构,也有丰富的可操作的实践案例,涉及服务划分、框架选型、服务治理,尤其是当前流行的服务网格,恰如我们在微服务架构改造过程的真实写照,相信大家也会从本书中获得微服务最佳实践的灵感和方向。
    王明华(北京多来点信息技术有限公司CTO)
    分而治之、高内聚、松耦合等是软件开发领域的高频词汇,现阶段,代表这类思路的热门架构方法非微服务莫属。恰如武术中的“见招拆招”,把各种变招加以拆解和演练,才能理解招式,若干招式组成套路,再结合时间、空间、身体结构,灵活运用,最终做到“拳无定势”。 本书帮你拆解微服务奥秘,从实战角度带你领略目前构建微服务的几种主要工具,结合案例,细细道来,值得开发人员学习。
    曹中胜(海康威视开发总监)
    本书围绕微服务架构高可用方面进行深度剖析,从实战角度对微服务相关技术进行讲解,教会我们如何轻松搭建可伸缩的微服务架构,以及所需要的基础知识和技能,对一线架构师的工作有着非常大的指导意义。作者程超对微服务架构理解透彻,功力深厚,强烈向各位技术同行们推荐这本书!
    黄勇(《架构探险》作者)
    本书从微服务和领域驱动开发的角度阐述高可用和可伸缩架构,知识点覆盖全面。书籍由多名一线互联网资深人员联合出品,体现了现代技术书籍的合作共赢的模式。各位作者取长补短,将最好的内容呈现至读者面前。在架构类的书层出不穷的当今,本书特点鲜明,是我眼中的优秀书籍,推荐读者品读。
    张亮(京东数科数据研发负责人,Apache ShardingSphere发起人& PPMC,
    《未来架构——从服务化到云原生》作者)
    “微服务”早已成为广大“码农”们的聊天必备佳品,可每每深入“微服务架构在具体实践中是怎样实施的?微服务架构在实施过程中存在怎样的困难和挑战?服务以什么原则拆分?拆分成什么样的颗粒度才算微?如何选型?”等一类的话题时,大家往往会三缄其口或乏善可陈。作者将自身多年的一线项目实践经验以文字形式将微服务的原理到项目实践应用深入浅出地完整呈现出来,同时通过案例对微服务架构实施过程中存在问题及解决方法进行了总结,对于想快速学习、应用微服务架构的读者来说是不可多得之作。
    曾波(波姐,鹏博士电信传媒集团OTT业务技术负责人)
    微服务(MicroServices)定义较早见于Martin Fowler的著作和博客中,但在此之前,有几家公司早已开始了微服务的实践探索,并建立了具备相当规模和影响力的产品,例如,阿里巴巴开源的Dubbo。而秦金卫正是在这一阶段任职于阿里巴巴,从事微服务相关的研发工作。最近几年,微服务领域的基础软件层出不穷,由开源社区或一些大公司主导的方案都逐渐成熟,然而,却也给微服务方案的选型带来一些不便。本书结合常见的微服务产品,在服务研发、性能优化、监控、管理甚至遗留系统改造方面都做了全面的介绍,非常值得一读。
    宓学强(陌陌前技术主管,淘宝微服务框架负责人)
    微服务架构对大型分布式后端的改造和优化非常有帮助,但是它并不容易实现,搞不好就会事倍功半。本书理论与实践相结合,介绍了时下流行的Dubbo、Spring Cloud、容器化等技术,以及实践经验,对于想了解微服务技术的你是一个不错的选择。
    付磊(《Redis开发与运维》作者)
    微服务这两年的热度持续不减,支持这种理念的中间件、开发框架等产品也不断迭代演进,我们可以运用的武器越来越多,但是这也使得技术人员在学习与选择上增加了不少的难度。本书基于实战,从架构的本质,微服务设计的原则到各环节重要技术点的分析等环节做了详细的思路讲解。其中也涵盖了目前最流行的一些框架与产品,紧跟时代的步伐,所以我推荐想要深入了解微服务架构全貌的读者阅读此书。
    翟永超(公众号“程序猿DD”、《Spring Cloud微服务实战》作者)
    很高兴看到《高可用可伸缩微服务架构》一书问世,作者老师们是社区挚友,多年以来致力于技术架构研究与落地,本书集合了技术大咖精华,结合业界最佳实践,展示微服务架构精华,是技术架构师们不可或缺的工具书。
    王友强(中生代技术社区发起人)
    微服务架构时下不断升温,如何针对自己当前业务场景进行微服务架构改造变得迫在眉睫,若同时还要兼顾高可用性、可伸缩性,这就要求架构师们具备庞大的技术体系,且不说容器化、DevOps、微服务监控和网关,光是核心的服务治理学习曲线就异常陡峭,这本书无疑如久旱甘霖,值得大家细细品读。
    兰小伟(《Solr权威指南》作者)
    本书深入浅出地讲解了微服务架构的理论与设计方法,并聚焦高可用和可伸缩这两大特性,详细分析了实现这两大特性需要关注的方向,包括高可用、高并发、分布式事务等。而且介绍和分析了微服务实践中使用的一系列基础组件,包括远程过程调用、网关、服务编排等。本书还通过具体的业务场景——支付场景来介绍如何在具体业务中实践高可用、可伸缩的微服务架构。非常值得阅读。
    韦韬晟(Apache Dubbo Committer,某互联网金融公司架构师)
    本书系统解答了IT企业在服务演进主线过程中,在微服务化技术升级和服务迁移过程中的一些核心节点的关键痛点问题。最终让服务演进成基于领域建模,高可用、可伸缩的微服务架构,从而在技术层面解决当前一些大型企业和一些独角兽企业遇到的服务化进程推进之痛,强烈建议大家阅读学习。
    徐凌云(新华网在线教育平台技术负责人,京东云网关研发负责人)
    微服务架构对于金融行业从“稳态”到“敏态”的数字化转型意义非凡,极大提升业务系统的可用性、扩展性和应变能力。作者基于一线实战项目,深入浅出介绍微服务架构的各种技术细节。此刻此书,恰逢甘霖,给大家提供了一个学习微服务的捷径。
    胡晓磊(华为金融行业解决方案专家)
    想知道怎样建立起微服务架构的完整思维吗?我觉得你应该看看这本书。它勾勒出微服务架构的编程思想和原理,介绍了微服务架构实例,让我们对微服务架构的认识变得立体、系统起来。并且深入浅出、通俗易懂,既具有精炼的微服务架构之道,又包含精彩具象的实践代码。不论初学编程的菜鸟,还是经验丰富的大牛,都值得一读。
    周智勇(融贯电商高级研发总监)
    本书阶梯指引读者深入微服务框架,满满的都是干货,从架构发展历程引入微服务架构,通过与最近炙热的领域驱动设计(DDD)结合碰撞出“感情火花”把架构设计讲得通俗易懂,加上各个框架实现原理的深入解读,让读者无论对框架还是微服务架构都有了更深刻的理解,再结合实际项目的实战部分,让微服务架构更加清晰地呈现在脑海里。是一本通俗易懂的微服务架构工具书,非常值得拥有。
    杨进京(美团金融技术专家)
    本书覆盖了微服务的方方面面——微服务理论、拆分依据、开发框架、稳定性保障、分布式事务、监控、微服务编排、重构乃至性能优化,甚至目前火热的“Service Mesh”均有覆盖。很难想象一本书竟然能介绍这么庞大的技术体系,而且还能无缝地承接。阅读本书,能让您对微服务的完整生态有一个相对完整的认识,对于想快速了解并应用微服务构建系统的读者来说是一部不可多得之作。
    周立(《Spring Cloud与Docker微服务架构实战》作者)
    本书从微服务架构概念开始,指出微服务的业务领域模型设计。重点讲了微服务设计的重点和痛点:性能优化、监控、一致性、可用性等。既有理论依据、设计心得,又有工程实施方案;既有应用框架源码分析,又有自动化运维工具介绍。各位作者都是在金融和电商等行业一线出来的资深人员,内容深入浅出,是讲述微服务的一本不可多得的好书。
    王欣(Apache Dubbo PPMC)
    时至今日,无论大型互联网公司还是创业型公司,大家越来越多地选择微服务架构。众所周知,实现微服务架构是非常困难的,本书从理论到实践阐述了如何搭建高可用可伸缩的微服务系统。这本书不单单介绍常用的 Apache Dubbo、Spring Cloud 等框架的使用,更重要的是告诉读者使用微服务架构所遇到的常见问题及解决方案,是一本诚意十足和干货满满的书。
    沈哲(《RxJava 2.x 实战》作者,爱回收创新业务部技术专家)
    几位熟悉的朋友合著的这本书我觉得担得起两个字“干货”,既有Dubbo、Spring Cloud,还有最近讨论比较多的Service Mesh,关注案例的朋友重点看一下支付平台、遗留系统改造等章节。赠人玫瑰、手有余香,感谢诸位为微服务原创图书再添佳作。如果说遗憾的话,就是读完意犹未尽,期待续篇。
    于君泽(《深入分布式缓存》联合作者)
    我和本书作者程超在多年前相识于技术中,他的踏实、认真、对技术的孜孜不倦的精神给我留下了深刻的印象,我们惺惺相惜、相见恨晚。微服务架构是这些年非常火的名词,不论是阿里等巨型互联网公司还是中小型企业,微服务均承载了大量的商业系统。本书紧密围绕微服务架构,通过DDD、Dubbo、Spring Cloud、网关、监控、稳定性等维度全方位地展示了如何将微服务架构做到高可用、可伸缩。本书内容丰富,对于体系化的思考和认知微服务系统的架构,有着非常重要的参考价值。
    朱政科(《HikariCP实战》作者)
    本书涉及微服务架构的众多方面,且每个章节都很『干』。虽说是关于微服务,但书中所讲的概念和模式,绝不仅仅是针对微服务,不管是经验丰富的程序员,还是初出茅庐的新手,都能在本书中获得所需的知识。
    泽彬(阿里巴巴技术专家)

目录

第1章  微服务架构概述  
  1.1  什么是架构
  1.2  几个相关概念
  1.3  从软件的生命周期看架构设计
  1.4  架构的形式与特点
  1.5  架构的目标与方法
  1.6  架构的不同风格
第2章  微服务领域驱动设计
  2.1  领域驱动设计
    2.1.1  领域驱动设计概览
    2.1.2  问题域与解决方案域
    2.1.3  限界上下文
    2.1.4  上下文映射
    2.1.5  领域架构
  2.2  微服务的设计
    2.2.1  限界上下文的边界
    2.2.2  限界上下文即微服务
    2.2.3  识别限界上下文
    2.2.4  微服务之间的协作
  2.3  小结
第3章  Apache Dubbo框架的原理与实现
  3.1  Dubbo框架的选型与使用
    3.1.1  Dubbo框架的选型
    3.1.2  Dubbo框架的使用
  3.2  Dubbo框架的原理分析
    3.2.1  总体架构分析
    3.2.2  Dubbo Bean的加载
    3.2.3  Dubbo Extension机制
    3.2.4  Dubbo消费端
    3.2.5  Dubbo服务端
    3.2.6  Dubbo的通信机制
  3.3  基于Dubbo的自动化Mock系统
    3.3.1  Mock模拟系统的产生
    3.3.2  Dubbo Mock的使用
    3.3.3  Dubbo Mock的原理解析
    3.3.4  自动化Mock系统的实现
第4章  Spring Boot/Spring Cloud实践
  4.1  Spring Boot原理剖析
    4.1.1  Spring Boot Quick Start
    4.1.2  Spring Boot之SpringApplication
    4.1.3  spring-boot-loaded模块分析
    4.1.4  spring-boot-autoconfigure模块分析
    4.1.5  Spring Boot Conditional注解分析
  4.2  Dubbo Spring Boot Starter
    4.2.1  Dubbo Spring Boot Starter简介
    4.2.2  Dubbo Initializr及sample
    4.2.3  dubbo-spring-boot-autoconfigure模块
    4.2.4  dubbo-spring-boot-actuator模块
  4.3  Spring Cloud栈
    4.3.1  为什么微服务架构需要Spring Cloud
    4.3.2  Spring Cloud技术栈总览
    4.3.3  spring-cloud-scaffold基础库集合
  4.4  基于Maven Archetype的脚手架
    4.4.1  Maven Archetype
    4.4.2  脚手架的搭建
    4.4.3  生成脚手架
第5章  微服务稳定性保证的常用手段
  5.1  微服务的稳定性
  5.2  高可用
    5.2.1  限流原理与实现
    5.2.2  断路器原理与实现
    5.2.3  超时与重试
  5.3  高并发
    5.3.1  异步
    5.3.2  缓存
  5.4  总结
第6章  微服务下如何保证事务的一致性
  6.1  从本地事务到分布式事务的演变
  6.2  强一致性解决方案
    6.2.1  二阶段提交协议
    6.2.2  三阶段提交协议
  6.3  最终一致性解决方案
    6.3.1  TCC模式
    6.3.2  补偿模式
    6.3.3  可靠事件模式
  6.4  开源项目的分布式事务实现解读
    6.4.1  Apache RocketMQ
    6.4.2  ServiceComb
第7章  百亿流量微服务网关的设计与实现
  7.1  API网关概述
    7.1.1  分布式服务架构、微服务架构与 API 网关
    7.1.2  API网关的定义、职能与关注点
    7.1.3  API网关的分类与技术分析
  7.2  开源网关的分析与调研
    7.2.1  常见的开源网关介绍
    7.2.2  四大开源网关的对比分析
    7.2.3  开源网关的技术总结
  7.3  百亿流量交易系统API网关设计
    7.3.1  百亿流量交易系统API网关的现状和面临问题
    7.3.2  业务网关的设计与最佳实践
第8章  微服务编排
  8.1  Netflix Conductor
  8.2  Netflix Conductor的架构
  8.3  Conductor的使用案例
  8.4  Netflix Conductor源码分析
    8.4.1  Client层源码分析
    8.4.2  Server端源码分析
    8.4.3  core端源码分析
第9章  微服务数据抽取与统计
  9.1  案例小故事
  9.2  数据仓库概述
    9.2.1  什么是数据仓库
    9.2.2  数据仓库架构
    9.2.3  数据仓库建模方法
    9.2.4  数据抽取、转换和加载
    9.2.5  数据统计
  9.3  数据仓库工具Hive
    9.3.1  安装Hive
    9.3.2  Hive数据库
    9.3.3  Hive表
  9.4  使用Sqoop抽取数据
    9.4.1  安装Sqoop
    9.4.2  将MySQL表数据导入Hive表
  9.5  ETL作业调度
第10章  微服务双活体系建设
  10.1  系统高可用
  10.2  双活数据中心
    10.2.1  单机房部署
    10.2.2  双机房部署
    10.2.3  基于支付场景的双活体系建设
第11章  基于支付场景下的微服务改造与性能优化
  11.1  支付场景的介绍
  11.2  支付业务建模和服务划分
  11.3  支付场景下微服务架构的详解与分析
    11.3.1  业务架构分析
    11.3.2  技术平台详解
  11.4  从代码层面提升微服务架构的性能
    11.4.1  从代码和设计的角度看
    11.4.2  从整体架构的角度看
  11.5  微服务架构中常见的一些故障分析技巧
第12章  遗留系统的微服务架构改造
  12.1  代码分层结构的转变
  12.2  遗留系统的债券与思考
  12.3  从单体系统拆分服务的方法论
  12.4  遗留系统的微服务架构改造
    12.4.1  从代码重构开始
    12.4.2  拆分服务需要面向服务进行架构设计
    12.4.3  改造是一个渐进的过程
    12.4.4  单元测试是基石
    12.4.5  面向失败的设计
    12.4.6  前后端分离
    12.4.7  共享现有数据库
    12.4.8  灰度发布的必要性
    12.4.9  日志聚合与全链路监控
第13章  Service Mesh详解
  13.1  Service Mesh是什么
  13.2  Service Mesh的背景
  13.3  Service Mesh介绍
    13.3.1  Service Mesh架构
    13.3.2  Service Mesh能做什么
  13.4  Service Mesh的价值
  13.5  Service Mesh现状
  13.6  Service Mesh存在的问题
  13.7  Istio详解
    13.7.1  Istio架构
    13.7.2  数据平面
    13.7.3  控制平面
    13.7.4  Isito案例
  13.8  Service Mesh展望
第14章  微服务监控实战
  14.1  APM原理与应用
    14.1.1  什么是APM
    14.1.2  APM监控点
    14.1.3  APM深入解析
  14.2  Prometheus监控系统介绍
    14.2.1  Prometheus的主要特点
    14.2.2  Prometheus的架构及组件介绍
    14.2.3  Prometheus的安装
    14.2.4  使用Prometheus对MySQL进行监控
    14.2.5  Prometheus的告警机制

前言

  

    序一
    微服务是软件架构设计领域近年最重要的创新之一,伴随着容器化、Devops和敏捷开发滚滚而来,短短几年从新鲜名词成为互联网行业主流架构理念,满足互联网业务高速发展对系统高可用可伸缩的需求。软件架构设计的概念来自于建筑学,描述了构成系统的代码模块组织形态,是团队协作开发的必要共识。与建筑架构相同,软件架构设计在继承中不断创新,而规模和更新速度远超依赖实体的建筑行业。微服务是对大型互联网系统架构最佳实践的提炼总结,是SOA思想的延伸,并没有统一标准,比如本书中讲解的Dubbo和Spring Cloud,当然还有许多其他的实现方式可供选择,无数业界的同仁们正在代码的世界里构建着自己心中的微服务。
    服务即能力,无论云计算的SaaS、PaaS、IaaS,还是衍生出的各种“*aaS”,都强调输出能力,而非技术——谓之“赋能”。20年来,我见证了系统架构从C/S到云原生一路进化、推陈出新,也曾纠结于对比微服务和SOA的异同,最终则是领悟到一切应用皆服务,与多年来言必称系统的思维定式挥手道别。微服务不会是大型系统架构的终态,新的趋势正在崛起,一切都不是设计出来的,而是在开源时代,凝结在灵光和业务创新之中。涓涓细流,汇成江海,也许更新一代的架构萌芽正在你的指尖敲出。这正是我们所处的行业激动人心之所在,这是我们最好的时代。
    四季有轮转,行业有冷暖,人生有起落,智慧可传承。本书的作者全部来自行业一线,具有相当丰富的微服务实战经验,更难得的是倾囊相授,总结最新案例结集成册,分享给业界同仁。互联网行业竞争激烈,技术日新月异,唯有持续学习成长,方能保持核心竞争力,在职业道路上站得稳走得远。传道授业解惑皆为我师,此行当以同怀报之。
    天行健,君子以自强不息;地势坤,君子以厚德载物。赞几位作者老师,并与诸君共勉!
    史海峰
    (微信公众号“IT民工闲话”作者,贝壳金服小微企业生态CTO)