计算机
类型
5.6
豆瓣评分
可以朗读
语音朗读
242千字
字数
2018-03-01
发行日期
展开全部
主编推荐语
《分布式服务架构下册》:讲解高可用架构设计核心,应用层、数据库、缓存等层面解决高并发服务问题。
内容简介
本书是《分布式服务架构:原理、设计与实战》的下册,上一本详细介绍了解决线上高并发服务的一致性、高性能、高可用、敏捷等痛点,这本书会延续高可用服务架构的主题,并侧重于高可用架构设计的核心要点:可伸缩和可扩展,从应用层、数据库、缓存、消息队列、大数据查询系统、分布式定时任务系统、分布式配置服务、微服务等层面详细讲解如何设计可伸缩和可扩展的框架,提供了各个领域解决特定问题的方法论和思想总结,与上册结合后完美的阐述了保证线上高并发服务的方方面面:一致性、高性能、高可用、可伸缩、可扩展、敏捷性等,这里面的每个主题就是一个方法论,单独一个主题犹如杨过手中的玄铁重剑,六个主题放在一起就像段誉的六脉神剑,可保线上服务健壮运行,对实现服务稳定性的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月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。