SpringCloud微服务架构开发实战

网站

更多书籍点击进入>> CiCi岛

下载

电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍

封页

封页

编辑推荐

详解Spring Cloud所提供的微服务架构核心组件

详解微服务架构从设计、开发、部署到运维的一站式解决方案

通过大量易于构建、运行和测试的开发示例,带领读者实战微服务架构

详解Spring Cloud核心组件:服务发现、客户端负载均衡、API网关、微服务容错、统一配置中心、消息总线及微服务调用监控等

手把手带领读者使用Spring Boot进行微服务应用开发

手把手带领读者使用Config组件实现统一配置管理及加密处理

手把手带领读者使用Kafka和Redis构建基于消息驱动的应用

手把手带领读者使用OAuth 2.0和JWT构建安全解决方案

手把手带领读者使用Docker和Jenkins实现微服务应用的自动化部署

30秒极速了解本书精华内容:

为何采用微服务架构

Spring Boot微服务开发基础

Spring Cloud与微服务

实现服务治理——Eureka

客户端负载均衡——Ribbon

简化微服务调用——Feign

微服务容错保护与降级——Hystrix

构建API服务网关——Zuul

搭建统一配置中心——Config

微服务分布式跟踪与监控——Sleuth

在微服务中整合ELK

Spring Cloud与Kafka整合

使用Redis实现微服务数据缓存

基于OAuth 2.0搭建统一认证服务器

使用JWT实现单点登录处理

使用Docker部署微服务应用

通过Jenkins实现自动发布

 

内容简介

本书首先从微服务架构兴起的背景讲起,探讨了为何在分布式系统开发中微服务架构将逐渐取代单体架构,然后对Spring Cloud所提供的微服务组件及解决方案进行了一一讲解,从而让读者不但可以系统地学习Spring Cloud的相关知识,而且还可以全面掌握微服务架构应用的设计、开发、部署和运维等知识。 本书共11章,分为3篇。第1篇为微服务开发基础——Spring Boot框架及使用;第2篇为Spring Cloud组件实战;第3篇为微服务与Docker容器技术。其中第2篇为全书的核心,涵盖了构建微服务架构所需要的服务治理(Eureka)、客户端负载均衡(Ribbon)、微服务容错与降级处理(Hystrix)、微服务API统一网关(Zuul)、分布式配置中心(Config)、微服务调用链追踪(Sleuth)、微服务消息驱动开发(Stream)及微服务安全(OAuth及JWT)等相关知识。 本书内容通俗易懂,每章都结合实例进行讲解,特别适合Spring Cloud的入门读者阅读,也适合致力于互联网开发和Java开发的进阶读者阅读。如果你是运维人员,或者你对微服务架构有兴趣,那么本书也非常适合你阅读。此外,本书也可以作为相关培训机构的教材使用。

作者简介

董超 资深程序员、架构师。从事软件研发十多年,擅长移动互联网和行业应用架构。曾经多次主导大型国有企业系统和移动互联网平台的研发。现专注于IoT(物联网)及其应用平台的研发。 胡炽维 全栈工程师。有多年的开发经验,擅长前端开发技术,并对移动端原生开发技术也有所涉猎。曾经参与过多个互联网项目的研发和基于Docker的系统运维工作,积累了丰富的一线研发经验。现主要负责IoT(物联网)平台前端架构的研发与运维。

目 录

第1篇  微服务开发基础——Spring Boot框架及使用

第1章  微服务架构开发    2

1.1  单体架构应用的困境   2

1.2  微服务架构   3

1.2.1  如何定义微服务架构       4

1.2.2  微服务架构的优点   5

1.2.3  微服务架构的缺点   6

1.3  微服务架构设计   7

1.3.1  微服务粒度       7

1.3.2  微服务拆分原则       8

1.3.3  微服务自治原则       9

1.3.4  微服务交互原则       10

1.3.5  微服务架构迁移       10

1.4  不应使用微服务架构的情形      11

第2章  微服务基础——Spring Boot 12

2.1  Spring与Spring Boot  12

2.2  快速启动Spring Boot  13

2.2.1  编写pom.xml文件   14

2.2.2  编写应用引导类       16

2.2.3  编写配置文件   17

2.2.4  运行项目   17

2.3  使用Spring Boot构建示例项目 19

2.3.1  经典三层应用架构   19

2.3.2  设计领域对象   20

2.3.3  实现数据管理   23

2.3.4  编写业务逻辑层       29

2.3.5  编写RESTful API     31

2.3.6  数据库初始化   35

2.3.7  启动测试   36

2.4  Spring Boot特性  37

2.4.1  Spring Boot自动配置机制      37

2.4.2  Spring Boot扩展属性配置      38

2.4.3  Spring Boot日志配置      39

2.5  关于敏捷开发      40

2.6  关于RESTful API设计       41

2.6.1  以资源为中心进行URL设计  42

2.6.2  正确使用HTTP方法及状态码       42

2.6.3  查询及分页处理原则       43

2.6.4  其他指导原则   43

第2篇  Spring Cloud组件实战

第3章  Spring Cloud简介  46

3.1  微服务架构的核心关键点   46

3.2  Spring Cloud技术概览       49

3.2.1  Spring Cloud子项目 50

3.2.2  为何选择Spring Cloud     53

3.3  Spring Cloud版Hello World示例      54

第4章  服务治理与负载均衡    58

4.1  什么是服务治理   58

4.2  构建服务治理——Eureka   59

4.2.1  搭建微服务Parent工程   60

4.2.2  搭建服务治理服务器——Eureka服务器       62

4.2.3  搭建服务提供者——注册服务       64

4.2.4  搭建服务消费者——获取服务       68

4.3  使用客户端负载均衡——Ribbon      72

4.3.1  什么是客户端负载均衡   72

4.3.2  启用Ribbon      74

4.3.3  负载均衡测试   75

4.4  使用Feign简化微服务调用       77

4.5  深入Eureka  80

4.5.1  服务注册及相关原理       80

4.5.2  Eureka自我保护模式       82

4.5.3  注册一个服务实例需要的时间       84

4.5.4  Eureka高可用集群及示例       84

4.5.5  多网卡及IP指定      88

4.5.6  Eureka服务访问安全       89

4.6  深入Ribbon  90

4.6.1  Ribbon客户端负载均衡原理   90

4.6.2  Ribbon负载均衡策略及配置   92

4.6.3  直接使用Ribbon API       94

4.7  深入Feign    96

4.7.1  Feign的参数绑定     96

4.7.2  Feign中的继承  97

4.7.3  Feign与Swagger的冲突  98

4.8  微服务健康监控   99

4.9  异构服务解决方案——Sidecar   101

第5章  微服务容错保护——Hystrix       102

5.1  什么是微服务容错保护      102

5.2  快速启动Hystrix  103

5.2.1  引入Hystrix依赖     104

5.2.2  开启Hystrix支持     104

5.2.3  修改UserService实现      104

5.2.4  容错测试   105

5.2.5  服务降级的两种实现方式       107

5.2.6  在Feign中使用Hystrix回退   109

5.3  Hystrix容错机制分析  110

5.3.1  Hystrix整体处理流程      111

5.3.2  HystrixCommand与HystrixObservableCommand   113

5.3.3  断路器原理分析       115

5.3.4  Hystrix异常——HystrixBadRequestException       117

5.4  服务隔离      117

5.4.1  线程池隔离与信号量隔离       118

5.4.2  服务隔离的颗粒度   119

5.4.3  服务隔离配置   119

5.4.4  小结   120

5.5  服务降级模式      121

5.5.1  快速失败   121

5.5.2  静默失败   121

5.5.3  返回默认值       122

5.5.4  返回组装的值   122

5.5.5  返回远程缓存   123

5.5.6  主/从降级模式  124

5.6  请求缓存      127

5.7  请求合并      128

5.8  Hystrix监控  130

5.8.1  Hystrix仪表盘   131

5.8.2  Turbine仪表盘集群监控  133

5.8.3  Turbine与消息服务器集成      136

……

第6章  API服务网关——Zuul 137

第7章  统一配置中心——Config     166

第8章  分布式服务跟踪——Sleuth  192

第9章  消息驱动——Stream    215

第10章  微服务应用安全——Security    258

第3篇  微服务与Docker容器技术

第11章  微服务与Docker  288

11.1  Docker简介 288

11.2  Docker的使用    289

11.3  Docker与Spring Cloud微服务 301

11.4  微服务与Jenkins       305

11.5  微服务编排 315

前 言

前言  2014年3月,Martin Fowler在其博客上发表了Microservices(微服务)一文,对过去几年逐渐开始流行的微服务架构开发模式给出了正式的定义。同年,Netflix OSS将自己多年来在实际开发中所使用的微服务基础组件开源。随后,Pivotal在Netflix OSS的基础上对这些组件进行了封装和集成,推出了Spring Cloud。到如今,微服务架构已逐渐普及,在技术生态上也得到了不断完善和更新,其在容器、应用框架、发布管理及监控等方面都有了长足进步。微服务在日常开发中也崭露头角,逐渐得到了开发者的认同。与此同时,Spring Cloud在过去几年中快速发展,不断迭代和更新,已经形成了微服务开发“全家桶”式的解决方案,逐渐在微服务开发领域奠定了坚实的基础。
  当我第一次接触微服务的概念时,以为这又是一个“新瓶装旧酒”的把戏。就像当年一些大公司为解决分布式大型应用所提出的COBRA、EJB、DCOM和ESB等概念一样难以使用,它们甚至还没有来得及等用户完全掌握就退出了历史的舞台。当我再次注意到微服务时,是因为Spring Cloud的推出。在大致阅读了相关文档之后顺便“跑”了一下示例项目,我就被其深深吸引了。正是这次接触,使我改变了对微服务的看法。正巧接下来的一段时间,公司内部正在做架构调整,也发现了微服务有其可用之处,所以便在架构调整中引入了Spring Cloud,并最终在项目中取得了不错的效果。这加深了我对微服务的好感,所以后续对Spring Cloud进行了更加深入和系统的学习与研究。
  不过话又说回来,虽然公司的第一次微服务架构实践取得了不错的效果,但在实践中也出现了很多问题。感受最深的是,微服务架构不再仅仅是编写代码。单体架构应用开发,一般在完成代码编写之后部署上线就可以了。但在微服务架构下,项目的部署和运维等都面临着新的考验。幸好,Spring Cloud本身提供了一系列开箱即用的功能,可以帮助开发人员降低微服务实践的难度。
  这两年,图书市场上虽然已经有了一些与微服务相关的图书,但却鲜见一本比较系统、实用,能够真正解决开发人员实际问题的微服务架构图书。基于此原因,我下定决心写一本书,通过讲解Spring Cloud为微服务开发所提供的核心组件,带领读者进入微服务开发的世界,并将Spring Cloud中涉及的微服务核心解决方案及微服务模式通过示例的方式一一呈现给读者,以期解决开发人员的实际问题。
本书特色* 本书内容丰富,不仅涵盖了Spring Cloud的核心组件,而且还介绍了如何通过Spring Boot来搭建微服务,并介绍了Kafka、ELK和Redis等流行技术。
* 书中对微服务架构中的“痛点”,比如安全和消息应用等,都有非常详细的讲解,可以让读者快速掌握如何通过OAuth 2.0和JWT构建单点登录安全解决方案。另外,本书还详细介绍了如何使用Kafka和Redis构建基于消息驱动的应用。
* 本书在讲解时给出了大量的开发示例,这些示例通俗易懂,且易于构建、运行和测试,能够让读者在学习微服务架构时快速进入实战,从而对Spring Cloud所提供的组件有直观认知。
* 本书通过实例来讲解微服务自动化部署解决方案,可以让读者不仅能够掌握微服务开发的知识,还可以学习微服务部署和运维的知识,从而全面理解微服务架构之道。
本书内容  本书共11章,分为3篇。书中首先从开发微服务所使用的基础框架Spring Boot开始讲起,然后重点讲述了Spring Cloud中的核心组件,最后介绍了微服务部署的相关技术。
  第1篇 微服务开发基础——Spring Boot框架及使用(第1、2章)  第1章介绍了微服务架构开发的基础概念,并对比传统单体架构开发,总结了微服务架构的优缺点,以及如何将传统的应用拆分和迁移到微服务架构体系下,并列出了微服务架构的开发原则。
  第2章讲述了微服务架构开发的基础——Spring Boot,并通过Spring Boot技术构建了贯穿本书的一个项目案例——电子商城的单体应用案例。通过对该项目案例的构建,讲解了开发时需要的基础知识,如RestController、JPA和API文档自动生成等技术。此外,本章还讲解了Spring Boot的一些特性,如自动配置机制和扩展机制等,这些特性在应用开发中都非常有用。
  第2篇 Spring Cloud组件实战(第3~10章)  第3章探讨了微服务架构开发需要关心的关键特性及业界的解决方案,并给出了Spring Cloud子项目。本章的最后一节给出了Hello World经典示例程序,读者可以感受一下通过Spring Cloud构建微服务的威力。
  第4章介绍了微服务架构最重要的一个服务支持组件:服务治理(Eureka)。通过介绍Eureka服务治理,可以让读者了解服务提供者如何将微服务注册到服务治理服务器中,以及服务消费者如何通过服务治理服务器来调用服务。在服务治理技术的基础上,本章还讲解了客户端负载均衡的实现方式及如何通过Feign实现声明式服务调用。
  第5章讲解了当微服务远程调用失败时如何启动服务应急预案——服务降级处理(Hystrix)。通过服务降级处理可以避免因调用失败而引起的“雪崩效应”。本章首先讲解了如何使用Spring Cloud Hystrix实现服务降级处理;然后对Hy

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值