展开全部

主编推荐语

《分布式服务架构下册》:讲解高可用架构设计核心,应用层、数据库、缓存等层面解决高并发服务问题。

内容简介

本书是《分布式服务架构:原理、设计与实战》的下册,上一本详细介绍了解决线上高并发服务的一致性、高性能、高可用、敏捷等痛点,这本书会延续高可用服务架构的主题,并侧重于高可用架构设计的核心要点:可伸缩和可扩展,从应用层、数据库、缓存、消息队列、大数据查询系统、分布式定时任务系统、分布式配置服务、微服务等层面详细讲解如何设计可伸缩和可扩展的框架,提供了各个领域解决特定问题的方法论和思想总结,与上册结合后完美的阐述了保证线上高并发服务的方方面面:一致性、高性能、高可用、可伸缩、可扩展、敏捷性等,这里面的每个主题就是一个方法论,单独一个主题犹如杨过手中的玄铁重剑,六个主题放在一起就像段誉的六脉神剑,可保线上服务健壮运行,对实现服务稳定性的n个9有着不可估量的作用。

目录

  • 封面
  • 版权页
  • 专家评论
  • 推荐序一
  • 推荐序二
  • 推荐序三
  • 前言
  • 目录
  • 第1章 如何设计一款永不重复的高性能分布式发号器
  • 1.1 可选方案及技术选型
  • 1.1.1 为什么不用UUID
  • 1.1.2 基于数据库的实现方案
  • 1.1.3 Snowflake开源项目
  • 1.1.4 小结
  • 1.2 分布式系统对发号器的基本需求
  • 1.3 架构设计与核心要点
  • 1.3.1 发布模式
  • 1.3.2 ID类型
  • 1.3.3 数据结构
  • 1.3.4 并发
  • 1.3.5 机器ID的分配
  • 1.3.6 时间同步
  • 1.3.7 设计验证
  • 1.4 如何根据设计实现多场景的发号器
  • 1.4.1 项目结构
  • 1.4.2 服务接口的定义
  • 1.4.3 服务接口的实现
  • 1.4.4 ID元数据与长整型ID的互相转换
  • 1.4.5 时间操作
  • 1.4.6 机器ID的生成
  • 1.4.7 小结
  • 1.5 如何保证性能需求
  • 1.5.1 嵌入发布模式的压测结果
  • 1.5.2 中心服务器发布模式的压测结果
  • 1.5.3 REST发布模式(Netty实现)的压测结果
  • 1.5.4 REST发布模式(Spring Boot+Tomcat实现)的压测结果
  • 1.5.5 性能测试总结
  • 1.6 如何让用户快速使用
  • 1.6.1 REST发布模式的使用指南
  • 1.6.2 服务化模式的使用指南
  • 1.6.3 嵌入发布模式的使用指南
  • 1.7 为用户提供API文档
  • 1.7.1 RESTful API文档
  • 1.7.2 Java API文档
  • 第2章 可灵活扩展的消息队列框架的设计与实现
  • 2.1 背景介绍
  • 2.2 项目目标
  • 2.2.1 简单易用
  • 2.2.2 高性能
  • 2.2.3 高稳定性
  • 2.3 架构难点
  • 2.3.1 线程模型
  • 2.3.2 异常处理
  • 2.3.3 优雅关机
  • 2.4 设计与实现
  • 2.4.1 项目结构
  • 2.4.2 项目包的规划
  • 2.4.3 生产者的设计与实现
  • 2.4.4 消费者的设计与实现
  • 2.4.5 启动模块的设计与实现
  • 2.4.6 消息处理器的体系结构
  • 2.4.7 反射机制
  • 2.4.8 模板项目的设计
  • 2.5 使用指南
  • 2.5.1 安装步骤
  • 2.5.2 Java API
  • 2.5.3 与Spring环境集成
  • 2.5.4 对服务源码进行注解
  • 2.6 API简介
  • 2.6.1 Producer API
  • 2.6.2 Consumer API
  • 2.6.3 消息处理器
  • 2.6.4 消息处理器定义的注解
  • 2.7 消息处理机模板项目
  • 2.7.1 快速开发向导
  • 2.7.2 后台监控和管理
  • 第3章 轻量级的数据库分库分表架构与框架
  • 3.1 什么是分库分表
  • 3.1.1 使用数据库的三个阶段
  • 3.1.2 在什么情况下需要分库分表
  • 3.1.3 分库分表的典型实例
  • 3.2 三种分而治之的解决方案
  • 3.2.1 客户端分片
  • 3.2.2 代理分片
  • 3.2.3 支持事务的分布式数据库
  • 3.3 分库分表的架构设计
  • 3.3.1 整体的切分方式
  • 3.3.2 水平切分方式的路由过程和分片维度
  • 3.3.3 分片后的事务处理机制
  • 3.3.4 读写分离
  • 3.3.5 分库分表引起的问题
  • 3.4 流行代理分片框架Mycat的初体验
  • 3.4.1 安装Mycat
  • 3.4.2 配置Mycat
  • 3.4.3 配置数据库节点
  • 3.4.4 数据迁移
  • 3.4.5 Mycat支持的分片规则
  • 3.5 流行的客户端分片框架Sharding JDBC的初体验
  • 3.5.1 Sharding JDBC简介
  • 3.5.2 Sharding JDBC的功能
  • 3.5.3 Sharding JDBC的使用
  • 3.5.4 Sharding JDBC的使用限制
  • 3.6 自研客户端分片框架dbsplit的设计、实现与使用
  • 3.6.1 项目结构
  • 3.6.2 包结构和执行流程
  • 3.6.3 切片下标命名策略
  • 3.6.4 SQL解析和组装
  • 3.6.5 SQL实用程序
  • 3.6.6 反射实用程序
  • 3.6.7 分片规则的配置
  • 3.6.8 支持分片的SplitJdbcTemplate和SimpleSplitJdbcTemplate接口API
  • 3.6.9 JdbcTemplate的扩展SimpleJdbcTemplate接口API
  • 3.6.10 用于创建分库分表数据库的脚本工具
  • 3.6.11 使用dbsplit的一个简单示例
  • 3.6.12 使用dbsplit的线上真实示例展示
  • 第4章 缓存的本质和缓存使用的优秀实践
  • 4.1 使用缓存的目的和问题
  • 4.2 自相似,CPU的缓存和系统架构的缓存
  • 4.2.1 CPU缓存的架构及性能
  • 4.2.2 CPU缓存的运行过程分析
  • 4.2.3 缓存行与伪共享
  • 4.2.4 从CPU的体系架构到分布式的缓存架构
  • 4.3 常用的分布式缓存解决方案
  • 4.3.1 常用的分布式缓存的对比
  • 4.3.2 Redis初体验
  • 4.4 分布式缓存的通用方法
  • 4.4.1 缓存编程的具体方法
  • 4.4.2 应用层访问缓存的模式
  • 4.4.3 分布式缓存分片的三种模式
  • 4.4.4 分布式缓存的迁移方案
  • 4.4.5 缓存穿透、缓存并发和缓存雪崩
  • 4.4.6 缓存对事务的支持
  • 4.5 分布式缓存的设计与案例
  • 4.5.1 缓存设计的核心要素
  • 4.5.2 缓存设计的优秀实践
  • 4.5.3 关于常见的缓存线上问题的案例
  • 4.6 客户端缓存分片框架redic的设计与实现
  • 4.6.1 什么时候需要redic
  • 4.6.2 如何使用redic
  • 4.6.3 更多的配置
  • 4.6.4 项目结构
  • 4.6.5 包结构
  • 4.6.6 设计与实现的过程
  • 第5章 大数据利器之Elasticsearch
  • 5.1 Lucene简介
  • 5.1.1 核心模块
  • 5.1.2 核心术语
  • 5.1.3 检索方式
  • 5.1.4 分段存储
  • 5.1.5 段合并策略
  • 5.1.6 Lucene相似度打分
  • 5.2 Elasticsearch简介
  • 5.2.1 核心概念
  • 5.2.2 3C和脑裂
  • 5.2.3 事务日志
  • 5.2.4 在集群中写索引
  • 5.2.5 集群中的查询流程
  • 5.3 Elasticsearch实战
  • 5.3.1 Elasticsearch的配置说明
  • 5.3.2 常用的接口
  • 5.4 性能调优
  • 5.4.1 写优化
  • 5.4.2 读优化
  • 5.4.3 堆大小的设置
  • 5.4.4 服务器配置的选择
  • 5.4.5 硬盘的选择和设置
  • 5.4.6 接入方式
  • 5.4.7 角色隔离和脑裂
  • 第6章 全面揭秘分布式定时任务
  • 6.1 什么是定时任务
  • 6.2 分布式定时任务
  • 6.2.1 定时任务的使用场景
  • 6.2.2 传统定时任务存在的问题
  • 6.2.3 分布式定时任务及其原理
  • 6.3 开源分布式定时任务的用法
  • 6.3.1 Quartz的分布式模式
  • 6.3.2 TBSchedule
  • 6.3.3 Elastic-Job
  • 第7章 RPC服务的发展历程和对比分析
  • 7.1 什么是RPC服务
  • 7.2 RPC服务的原理
  • 7.2.1 Sokcet套接字
  • 7.2.2 RPC的调用过程
  • 7.3 在程序中使用RPC服务
  • 7.4 RPC服务的发展历程
  • 7.4.1 第一代RPC:以ONC RPC和DCE RPC为代表的函数式RPC
  • 7.4.2 第二代RPC:支持面对象的编程
  • 7.4.3 第三代RPC:SOA和微服务
  • 7.4.4 架构的演进
  • 7.5 主流的RPC框架
  • 7.5.1 Thrift
  • 7.5.2 ZeroC Ice
  • 7.5.3 gRPC
  • 7.5.4 Dubbo
  • 第8章 Dubbo实战及源码分析
  • 8.1 Dubbo的四种配置方式
  • 8.1.1 XML配置
  • 8.1.2 属性配置
  • 8.1.3 API配置
  • 8.1.4 注解配置
  • 8.2 服务的注册与发现
  • 8.2.1 注册中心
  • 8.2.2 服务暴露
  • 8.2.3 引用服务
  • 8.3 Dubbo通信协议及序列化探讨
  • 8.3.1 Dubbo支持的协议
  • 8.3.2 协议的配置方法
  • 8.3.3 多协议暴露服务
  • 8.3.4 Dubbo协议的使用注意事项
  • 8.3.5 Dubbo协议的约束
  • 8.4 Dubbo中高效的I/O线程模型
  • 8.4.1 对Dubbo中I/O模型的分析
  • 8.4.2 Dubbo中线程配置的相关参数
  • 8.4.3 在Dubbo线程方面踩过的坑
  • 8.4.4 对Dubbo中线程使用的建议
  • 8.5 集群的容错机制与负载均衡
  • 8.5.1 集群容错机制的原理
  • 8.5.2 集群容错模式的配置方法
  • 8.5.3 六种集群容错模式
  • 8.5.4 集群的负载均衡
  • 8.6 监控和运维实践
  • 8.6.1 日志适配
  • 8.6.2 监控管理后台
  • 8.6.3 服务降级
  • 8.6.4 优雅停机
  • 8.6.5 灰度发布
  • 8.7 Dubbo项目线上案例解析
  • 8.7.1 线上问题的通用解决方案
  • 8.7.2 耗时服务耗尽了线程池的案例
  • 8.7.3 容错重试机制引发服务雪崩的案例
  • 8.8 深入剖析Dubbo源码及其实现
  • 8.8.1 Dubbo的总体架构设计
  • 8.8.2 配置文件
  • 8.8.3 Dubbo的核心RPC
  • 8.8.4 Dubbo巧妙的URL总线设计
  • 8.8.5 Dubbo的扩展点加载SPI
  • 8.8.6 Dubbo服务暴露的过程
  • 8.8.7 服务引用
  • 8.8.8 集群容错和负载均衡
  • 8.8.9 集群容错
  • 8.8.10 负载均衡
  • 第9章 高性能网络中间件
  • 9.1 TCP/UDP的核心原理及本质探索
  • 9.1.1 网络模型
  • 9.1.2 UDP、IP及其未解决的问题
  • 9.1.3 TCP详解
  • 9.1.4 是否可以用UDP代替TCP
  • 9.1.5 网络通信的不可靠性讨论
  • 9.2 网络测试优秀实践
  • 9.2.1 网络测试的关键点
  • 9.2.2 那些必不可少的网络测试工具
  • 9.2.3 典型的测试报告
  • 9.3 高性能网络框架的设计与实现
  • 9.3.1 对代理功能的测试及分析
  • 9.3.2 网络中间件的使用介绍
  • 9.3.3 内存和缓存的优化
  • 9.3.4 快速解析流数据
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。