展开全部

主编推荐语

实战项目引领云端微服务架构-基于Spring Boot/Cloud及Docker技术

内容简介

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

目录

  • 版权信息
  • 版权声明
  • 内容提要
  • 译者序
  • 前言
  • 资源与支持
  • 致谢
  • 关于本书
  • 关于作者
  • 关于封面插图
  • 第1章 欢迎迈入云世界,Spring
  • 1.1 什么是微服务
  • 1.2 什么是Spring,为什么它与微服务有关
  • 1.3 在本书中读者会学到什么
  • 1.4 为什么本书与你有关
  • 1.5 使用Spring Boot来构建微服务
  • 1.6 为什么要改变构建应用的方式
  • 1.7 云到底是什么
  • 1.8 为什么是云和微服务
  • 1.9 微服务不只是编写代码
  • 1.9.1 核心微服务开发模式
  • 1.9.2 微服务路由模式
  • 1.9.3 微服务客户端弹性模式
  • 1.9.4 微服务安全模式
  • 1.9.5 微服务日志记录和跟踪模式
  • 1.9.6 微服务构建和部署模式
  • 1.10 使用Spring Cloud构建微服务
  • 1.10.1 Spring Boot
  • 1.10.2 Spring Cloud Config
  • 1.10.3 Spring Cloud服务发现
  • 1.10.4 Spring Cloud与Netflix Hystrix和Netflix Ribbon
  • 1.10.5 Spring Cloud与Netflix Zuul
  • 1.10.6 Spring Cloud Stream
  • 1.10.7 Spring Cloud Sleuth
  • 1.10.8 Spring Cloud Security
  • 1.10.9 代码供应
  • 1.11 通过示例来介绍Spring Cloud
  • 1.12 确保本书的示例是有意义的
  • 1.13 小结
  • 第2章 使用Spring Boot构建微服务
  • 2.1 架构师的故事:设计微服务架构
  • 2.1.1 分解业务问题
  • 2.1.2 建立服务粒度
  • 2.1.3 互相交流:定义服务接口
  • 2.2 何时不应该使用微服务
  • 2.2.1 构建分布式系统的复杂性
  • 2.2.2 服务器散乱
  • 2.2.3 应用程序的类型
  • 2.2.4 数据事务和一致性
  • 2.3 开发人员的故事:用Spring Boot和Java构建微服务
  • 2.3.1 从骨架项目开始
  • 2.3.2 引导Spring Boot应用程序:编写引导类
  • 2.3.3 构建微服务的入口:Spring Boot控制器
  • 2.4 DevOps工程师的故事:构建运行时的严谨性
  • 2.4.1 服务装配:打包和部署微服务
  • 2.4.2 服务引导:管理微服务的配置
  • 2.4.3 服务注册和发现:客户端如何与微服务通信
  • 2.4.4 传达微服务的“健康状况”
  • 2.5 将视角综合起来
  • 2.6 小结
  • 第3章 使用Spring Cloud配置服务器控制配置
  • 3.1 管理配置(和复杂性)
  • 3.1.1 配置管理架构
  • 3.1.2 实施选择
  • 3.2 构建Spring Cloud配置服务器
  • 3.2.1 创建Spring Cloud Config引导类
  • 3.2.2 使用带有文件系统的Spring Cloud配置服务器
  • 3.3 将Spring Cloud Config与Spring Boot客户端集成
  • 3.3.1 建立许可证服务对Spring Cloud Config服务器的依赖
  • 3.3.2 配置许可证服务以使用Spring Cloud Config
  • 3.3.3 使用Spring Cloud配置服务器连接数据源
  • 3.3.4 使用@Value 注解直接读取属性
  • 3.3.5 使用Spring Cloud配置服务器和Git
  • 3.3.6 使用Spring Cloud配置服务器刷新属性
  • 3.4 保护敏感的配置信息
  • 3.4.1 下载并安装加密所需的Oracle JCE jar
  • 3.4.2 创建加密密钥
  • 3.4.3 加密和解密属性
  • 3.4.4 配置微服务以在客户端使用加密
  • 3.5 最后的想法
  • 3.6 小结
  • 第4章 服务发现
  • 4.1 我的服务在哪里
  • 4.2 云中的服务发现
  • 4.2.1 服务发现架构
  • 4.2.2 使用Spring和Netflix Eureka进行服务发现实战
  • 4.3 构建Spring Eureka服务
  • 4.4 通过Spring Eureka注册服务
  • 4.5 使用服务发现来查找服务
  • 4.5.1 使用Spring DiscoveryClient查找服务实例
  • 4.5.2 使用带有Ribbon功能的Spring RestTemplate调用服务
  • 4.5.3 使用Netflix Feign客户端调用服务
  • 4.6 小结
  • 第5章 使用Spring Cloud和Netflix Hystrix的客户端弹性模式
  • 5.1 什么是客户端弹性模式
  • 5.1.1 客户端负载均衡模式
  • 5.1.2 断路器模式
  • 5.1.3 后备模式
  • 5.1.4 舱壁模式
  • 5.2 为什么客户端弹性很重要
  • 5.3 进入Hystrix
  • 5.4 搭建许可服务器以使用Spring Cloud和Hystrix
  • 5.5 使用Hystrix实现断路器
  • 5.5.1 对组织微服务的调用超时
  • 5.5.2 定制断路器的超时时间
  • 5.6 后备处理
  • 5.7 实现舱壁模式
  • 5.8 基础进阶——微调Hystrix
  • 5.8 基础进阶微调Hystrix
  • 重新审视Hystrix配置
  • 5.9 线程上下文和Hystrix
  • 5.9.1 ThreadLocal与Hystrix
  • 5.9.2 HystrixConcurrencyStrategy实战
  • 5.10 小结
  • 第6章 使用Spring Cloud和Zuul进行服务路由
  • 6.1 什么是服务网关
  • 6.2 Spring Cloud和Netflix Zuul简介
  • 6.2.1 建立一个Zuul Spring Boot项目
  • 6.2.2 为Zuul服务使用Spring Cloud注解
  • 6.2.3 配置Zuul与Eureka进行通信
  • 6.3 在Zuul中配置路由
  • 6.3.1 通过服务发现自动映射路由
  • 6.3.2 使用服务发现手动映射路由
  • 6.3.3 使用静态URL手动映射路由
  • 6.3.4 动态重新加载路由配置
  • 6.3.5 Zuul和服务超时
  • 6.4 Zuul的真正威力:过滤器
  • 6.5 构建第一个生成关联ID的Zuul前置过滤器
  • 在服务调用中使用关联ID
  • 6.6 构建接收关联ID的后置过滤器
  • 6.7 构建动态路由过滤器
  • 6.7.1 构建路由过滤器的骨架
  • 6.7.2 实现run()方法
  • 6.7.3 转发路由
  • 6.7.4 整合
  • 6.8 小结
  • 第7章 保护微服务
  • 7.1 OAuth2简介
  • 7.2 从小事做起:使用Spring和OAuth2来保护单个端点
  • 7.2.1 建立EagleEye OAuth2验证服务
  • 7.2.2 使用OAuth2服务注册客户端应用程序
  • 7.2.3 配置EagleEye用户
  • 7.2.4 验证用户
  • 7.3 使用OAuth2保护组织服务
  • 7.3.1 将Spring Security和OAuth2 jar添加到各个服务
  • 7.3.2 配置服务以指向OAuth2验证服务
  • 7.3.3 定义谁可以访问服务
  • 7.3.4 传播OAuth2访问令牌
  • 7.4 JSON Web Token与OAuth2
  • 7.4.1 修改验证服务以颁发JWT令牌
  • 7.4.2 在微服务中使用JWT
  • 7.4.3 扩展JWT令牌
  • 7.4.4 从JWT令牌中解析自定义字段
  • 7.5 关于微服务安全的总结
  • 7.6 小结
  • 第8章 使用Spring Cloud Stream的事件驱动架构
  • 8.1 为什么使用消息传递、EDA和微服务
  • 8.1.1 使用同步请求-响应方式来传达状态变化
  • 8.1.2 使用消息传递在服务之间传达状态更改
  • 8.1.3 消息传递架构的缺点
  • 8.2 Spring Cloud Stream简介
  • Spring Cloud Stream架构
  • 8.3 编写简单的消息生产者和消费者
  • 8.3.1 在组织服务中编写消息生产者
  • 8.3.2 在许可证服务中编写消息消费者
  • 8.3.3 在实际操作中查看消息服务
  • 8.4 Spring Cloud Stream用例:分布式缓存
  • 8.4.1 使用Redis来缓存查找
  • 8.4.2 定义自定义通道
  • 8.4.3 将其全部汇集在一起:在收到消息时清除缓存
  • 8.5 小结
  • 第9章 使用Spring Cloud Sleuth和Zipkin进行分布式跟踪
  • 9.1 Spring Cloud Sleuth与关联ID
  • 9.1.1 将Spring Cloud Sleuth添加到许可证服务和组织服务中
  • 9.1.2 剖析Spring Cloud Sleuth跟踪
  • 9.2 日志聚合与Spring Cloud Sleuth
  • 9.2.1 Spring Cloud Sleuth与Papertrail集成实战
  • 9.2.2 创建Papertrail账户并配置syslog连接器
  • 9.2.3 将Docker输出重定向到Papertrail
  • 9.2.4 在Papertrail中搜索Spring Cloud Sleuth的跟踪ID
  • 9.2.5 使用Zuul将关联ID添加到HTTP响应
  • 9.3 使用Open Zipkin进行分布式跟踪
  • 9.3.1 添加Spring Cloud Sleuth和Zipkin依赖项
  • 9.3.2 配置服务以指向Zipkin
  • 9.3.3 安装和配置Zipkin服务器
  • 9.3.4 设置跟踪级别
  • 9.3.5 使用Zipkin跟踪事务
  • 9.3.6 可视化更复杂的事务
  • 9.3.7 捕获消息传递跟踪
  • 9.3.8 添加自定义跨度
  • 9.4 小结
  • 第10章 部署微服务
  • 10.1 EagleEye:在云中建立核心基础设施
  • 10.1.1 使用亚马逊的RDS创建PostgreSQL数据库
  • 10.1.2 在AWS中创建Redis集群
  • 10.1.3 创建ECS集群
  • 10.2 超越基础设施:部署EagleEye
  • 手动将EagleEye服务部署到ECS
  • 10.3 构建和部署管道的架构
  • 10.4 构建和部署管道实战
  • 10.5 开始构建和部署管道:GitHub和Travis CI
  • 10.6 使服务能够在Travis CI中构建
  • 10.6.1 构建的核心运行时配置
  • 10.6.2 安装预构建工具
  • 10.6.3 执行构建
  • 10.6.4 标记源代码
  • 10.6.5 构建微服务并创建Docker镜像
  • 10.6.6 将镜像推送到Docker Hub
  • 10.6.7 在Amazon ECS中启动服务
  • 10.6.8 启动平台测试
  • 10.7 关于构建和部署管道的总结
  • 10.8 小结
  • 附录A 在桌面运行云服务
  • 附录B OAuth2授权类型
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。