分布式系统常用技术及案例分析(第2版) 作者:柳伟卫

分布式系统常用技术及案例分析(第2版) 作者:柳伟卫

分布式系统常用技术及案例分析(第2版) 出版社:电子工业出版社

分布式系统常用技术及案例分析(第2版) 内容简介

分布式系统常用技术及案例分析(第2版) 目录

本书分两部分,第一部分主要介绍分布式系统基础理论知识,总结一些在设计分布式系统时需要考虑的范式、知识点以及可能会面临的问题,其中包括线程、通信、一致性、容错性、CAP理论、安全性和并发等相关内容;同时讲述分布式系统的常见架构体系,其中也包括最近比较火的RESTful风格架构、微服务、容器技术等。第二部分主要列举了在分布式系统应用中经常用到的一些主流技术,并介绍这些技术的作用和用法;这些技术涵盖了分布式消息服务、分布式计算、分布式存储、分布式监控系统、分布式版本控制、RESTful、微服务、容器等领域的内容。第1章 分布式系统基础知识1.1 概述1.1.1 什么是分布式系统1.1.2 集中式系统与分布式系统1.1.3 如何设计分布式系统1.1.4 分布式系统所面临的挑战1.2 线程1.2.1 什么是线程1.2.2 进程和线程1.2.3 线程和纤程1.2.4 编程语言中的线程对象1.2.5 SimpleThreads示例1.3 通信1.3.1 网络I/O模型的演进1.3.2 远程过程调用(RPC)1.3.3 面向消息的通信1.4 一致性1.4.1 以数据为中心的一致性模型1.4.2 以客户为中心的一致性1.5 容错性1.5.1 基本概念1.5.2 故障分类1.5.3 使用冗余来掩盖故障1.5.4 分布式提交1.6 CAP理论1.6.1 什么是CAP理论1.6.2 为什么CAP只能三选二1.6.3 CAP常见模型1.6.4 CAP的意义1.6.5 CAP最新发展1.7 安全性1.7.1 基本概念1.7.2 加密算法1.7.3 安全通道1.7.4 访问控制1.8 并发1.8.1 线程与并发1.8.2 并发与并行1.8.3 并发带来的风险1.8.4 同步(Synchronization)1.8.5 原子访问(Atomic Access)1.8.6 无锁化设计提升并发能力1.8.7 缓存提升并发能力1.8.8 更细颗粒度的并发单元第2章 分布式系统架构体系2.1 基于对象的体系结构2.1.1 分布式对象2.1.2 Java RMI2.2 面向服务的架构(SOA)2.2.1 SOA的基本概念2.2.2 基于Web Services的SOA2.2.3 SOA的演变2.3 REST风格的架构2.3.1 什么是REST2.3.2 REST有哪些特征2.3.3 Java实现REST的例子2.3.4 REST API最佳实践2.4 微服务架构(MSA)2.4.1 什么是MSA2.4.2 MSA与SOA2.4.3 何时采用MSA2.4.4 如何构建微服务2.5 容器技术2.5.1 虚拟化技术2.5.2 容器与虚拟机2.5.3 基于容器的持续部署2.6 Serverless架构2.6.1 什么是Serverless架构2.6.2 Serverless典型的应用场景2.6.3 Serverless架构原则2.6.4 例子:使用Serverless实现游戏全球同服第3章 分布式消息服务3.1 分布式消息概述3.1.1 基本概念3.1.2 使用场景3.1.3 常用技术3.2 Apache ActiveMQ3.2.1 例子:producer-consumer3.2.2 例子:使用JMX来监控ActiveMQ3.2.3 例子:使用Java实现producer-consumer3.3 RabbitMQ3.3.1 例子:Work Queues3.3.2 例子:Publish/Subscribe3.3.3 例子:Routing3.3.4 例子:Topics3.3.5 例子:RPC3.4 Apache RocketMQ3.4.1 例子:使用Java实现producer-consumer3.4.2 RocketMQ最佳实践3.5 Apache Kafka3.5.1 Apache Kafka的核心概念3.5.2 Apache Kafka的使用场景3.6 实战:基于JMS的消息发送和接收3.6.1 项目概述3.6.2 项目配置3.6.3 编码实现3.6.4 运行第4章 分布式计算4.1 分布式计算概述4.1.1 使用场景4.1.2 常用技术4.2 MapReduce4.2.1 MapReduce简介4.2.2 MapReduce的编程模型4.2.3 MapReduce接口实现4.2.4 MapReduce的使用技巧4.3 Apache Hadoop4.3.1 Apache Hadoop的核心组件4.3.2 例子:词频统计WordCount程序4.4 Spark4.4.1 Spark简介4.4.2 Spark与Hadoop的关系4.4.3 Spark 2.0的新特性4.4.4 Spark集群模式4.5 Mesos4.5.1 Mesos简介4.5.2 设计高可用的Mesos framework4.6 实战:基于Spark的词频统计4.6.1 项目概述4.6.2 项目配置4.6.3 编码实现4.6.4 运行第5章 分布式存储5.1 分布式存储概述5.1.1 使用场景5.1.2 常用技术5.2 Bigtable5.2.1 Bigtable的数据模型5.2.2 Bigtable的实现5.2.3 Bigtable的性能优化5.3 Apache HBase5.3.1 Apache HBase的基本概念5.3.2 Apache HBase的架构5.4 Apache Cassandra5.4.1 Apache Cassandra简介5.4.2 Apache Cassandra的应用场景5.4.3 Apache Cassandra的架构和数据模型5.4.4 用于配置Apache Cassandra的核心组件5.5 Memcached5.5.1 Memcached简介5.5.2 Memcached的架构5.5.3 Memcached客户端5.6 Redis5.6.1 Redis简介5.6.2 Redis的下载与简单使用5.6.3 Redis的数据类型及抽象5.7 MongoDB5.7.1 MongoDB简介5.7.2 MongoDB核心概念5.7.3 MongoDB的数据模型5.7.4 示例:Java连接MongoDB5.8 实战:基于Redis的分布式锁5.8.1 项目概述5.8.2 项目配置5.8.3 编码实现5.8.4 运行第6章 分布式监控6.1 分布式监控概述6.1.1 使用场景6.1.2 常用技术6.2 Nagios6.2.1 Nagios监控6.2.2 Nagios插件6.3 Zabbix6.3.1 Zabbix对容器的支持6.3.2 Zabbix的基本概念6.4 Consul6.4.1 Consul架构6.4.2 Consul agent6.5 ZooKeeper6.5.1 ZooKeeper简介6.5.2 ZooKeeper内部工作原理6.5.3 例子:ZooKeeper实现barrier和producer-consumer queue6.6 实战:基于ZooKeeper的服务注册和发现6.6.1 项目概述6.6.2 项目配置6.6.3 编码实现6.6.4 运行第7章 分布式版本控制系统7.1 分布式版本控制系统概述7.1.1 集中式与分布式7.1.2 分布式版本控制系统的核心概念7.2 Bazaar7.2.1 Bazaar的核心概念7.2.2 Bazaar的使用7.3 Mercurial7.3.1 Mercurial的核心概念7.3.2 Mercurial的使用7.4 Git7.4.1 Git的基础概念7.4.2 Git的使用7.5 Git Flow―团队协作最佳实践7.5.1 分支定义7.5.2 新功能开发工作流7.5.3 Bug修复工作流7.5.4 版本发布工作流第8章 RESTful API、微服务及容器技术8.1 Jersey8.1.1 Jersey简介8.1.2 Jersey的模块和依赖8.1.3 JAX-RS核心概念8.1.4 例子:用SSE构建实时Web应用8.2 Spring Boot8.2.1 Spring Boot简介8.2.2 Spring Boot的安装8.2.3 Spring Boot的使用8.2.4 Spring Boot的属性与配置8.3 Docker8.3.1 Docker简介8.3.2 Docker的核心组成、架构及工作原理8.3.3 Docker的使用8.4 实战:基于Docker构建、运行、发布微服务8.4.1 编写微服务8.4.2 微服务容器化8.4.3 构建Docker image8.4.4 运行image8.4.5 访问应用8.4.6 发布微服务

类似文章

发表评论

您的电子邮箱地址不会被公开。