新書推薦:
《
秩序四千年:人类如何运用法律缔造文明(世界重归混乱,文明岌岌可危,法律与秩序是我们仅有的武器。穿越时间,鸟瞰全球,一部波澜壮阔的人类文明史)
》
售價:HK$
154.6
《
民法典1000问
》
售價:HK$
99.7
《
国术健身 易筋经
》
售價:HK$
33.4
《
古罗马800年
》
售價:HK$
188.2
《
写出心灵深处的故事:踏上疗愈之旅(修订版)(创意写作书系)
》
售價:HK$
66.1
《
控制权视角下的家族企业管理与传承
》
售價:HK$
87.4
《
冯友兰和青年谈心系列
》
售價:HK$
167.3
《
利他主义的生意:偏爱“非理性”的市场(英国《金融时报》推荐读物!)
》
售價:HK$
77.3
|
編輯推薦: |
(1)新。符合当今云架构发展现状的开发技术,无论是大型企业还是个人开发者,都或多或少地采用了云的方式来开发和部署应用。
(2)全。涵盖REST设计、测试、服务注册、服务发现、安全、数据管理、消息通信、批处理、任务调度、运营、容器部署、持续发布等方面的知识。
(3)细。实战案例辅以大量理论知识,让读者透彻理解每一个知识点!
|
內容簡介: |
Cloud Native(云原生)是以云架构为优先的应用开发模式。目前,越来越多的企业已经开始大规模地拥抱云在云环境下开发应用、部署应用及发布应用等。未来,越来越多的开发者也将采用 Cloud Native 来开发应用。本书是国内Java 领域关于 Cloud Native 的著作。
《Cloud Native分布式架构原理与实践》全面讲解了基于 Cloud Native 来构建应用需要考虑的设计原则和实现方式,涵盖REST 设计、测试、服务注册、服务发现、安全、数据管理、消息通信、批处理、任务调度、运营、容器部署、持续发布等方面的 Cloud Native 知识。同时,书中所讲解的技术方案皆为业界主流的技术,极具前瞻性。*后,本书除了讲解 Cloud Native 的理论知识,还会在每个知识点上辅以大量的代码案例,使理论可以联系实践,具备更强的可操作性。
本书主要面向对分布式系统、微服务、Cloud Native 开发感兴趣的计算机专业的学生、软件开发人员和系统架构师。
|
關於作者: |
柳伟卫(waylau),在 IT 公司担任项目经理、架构师、高级开发顾问等职位,具有多年软件开发管理及系统架构经验。负责过多个省、**最大型分布式系统的设计与研发,参与了多个大型项目的微服务架构的技术改造,在实际工作中,积累了大量的微服务架构经验。是 CSDN、 开源中国、云栖社区等技术社区专家。
|
目錄:
|
第1章?Cloud Native 概述
1.1?当今软件发展的现状
1.1.1?软件需求的发展
1.1.2?开发方式的巨变
1.1.3?云是大势所趋
1.2?Cloud Native 的特性
1.2.1?以云为基础架构
1.2.2?云服务
1.2.3?无服务
1.2.4?可扩展
1.2.5?高可用
1.2.6?敏捷
1.2.7?云优先
1.3?12-Factor
1.3.1?基准代码
1.3.2?依赖
1.3.3?配置
1.3.4?后端服务
1.3.5?构建、发布和运行
1.3.6?进程
1.3.7?端口绑定
1.3.8?并发
1.3.9?易处理
1.3.10?开发环境与线上环境等价
1.3.11?日志
1.3.12?管理进程
1.4?成功案例
1.4.1?Amazon
1.4.2??? Netflix
1.4.3?淘宝网
1.5?Cloud Native 与微服务
1.5.1?微服务概述
1.5.2?从单块架构向微服务演进
1.5.3?Cloud Native 与微服务部署
1.6?总结
1.6.1?Cloud Native 的优点
1.6.2?Cloud Native 不是银弹
1.6.3?面临的挑战
第2章?REST API
2.1?REST 概述
2.1.1?REST 的定义
2.1.2?REST 设计原则
2.2?成熟度模型
2.2.1?第0级:使用 HTTP 作为传输方式
2.2.2?第1级:引入了资源的概念
2.2.3?第2级:根据语义使用 HTTP 动词
2.2.4?第3级:使用 HATEOAS
2.3?Java REST
2.3.1?JAX-RS 规范
2.3.2?Jersey 框架
2.3.3?Apache CXF 框架
2.3.4?Spring Web MVC 框架
2.4?内容协商
2.4.1?二进制数据
2.4.2?Google Protocol Buffers 传输协议
2.5?异常处理
2.5.1?HTTP 状态码
2.5.2?自定义异常信息
2.6?API 管理
2.6.1?版本化
2.6.2?文档化
2.6.3?可视化
2.7?客户端
2.7.1?浏览器插件
2.7.2?JAX-RS 客户端
2.7.3?Spring 客户端
2.8?实战:开启**个微服务
2.8.1?初始化一个 Spring Boot 原型
2.8.2?用 Gradle 编译项目
2.8.3?探索项目
2.8.4?实现**个服务
第3章?Cloud Native 测试
3.1?测试概述
3.1.1?传统测试所面临的问题
3.1.2?如何破解测试面临的问题
3.2?测试的类型、范围和比例
3.2.1?测试类型
3.2.2?测试范围
3.2.3?测试比例
3.3?如何进行微服务的测试
3.3.1?微服务的单元测试
3.3.2?Mock 与 Stub 的区别
3.3.3?微服务的集成测试
3.3.4?微服务的系统测试
3.3.5?保障代码覆盖率
3.4?Spring 测试框架
3.4.1?Spring TestContext 框架
3.4.2?Spring MVC Test 框架
3.4.3?Spring Boot Test 框架
第4章?服务路由
4.1?如何找到服务
4.1.1?DNS
4.1.2?服务注册与发现
4.1.3?客户端发现机制
4.1.4?服务端发现机制
4.2?实战:实现服务注册与发现
4.2.1?选择 Eureka的原因
4.2.2?集成 Eureka Server
4.2.3?集成 Eureka Client
4.2.4?服务的注册与发现
第5章?Cloud Native 安全
5.1?认证与授权
5.1.1?基本认证
5.1.2?摘要认证
5.1.3?摘要认证的密码加密
5.1.4?通用密码加密
5.1.5?基于散列的令牌方法
5.1.6?基于持久化的令牌方法
5.2?Java 安全框架
5.2.1?Apache Shiro
5.2.2?Spring Security
5.2.3?Spring Cloud Security
5.3?OAuth 2.0 认证
5.3.1?OAuth 2.0 的认证原理
5.3.2?OAuth 2.0 的核心概念
5.3.3?OAuth 2.0 的认证流程
5.4?实战:实现单点登录
5.4.1?项目依赖
5.4.2?编码实现
5.4.3?应用配置
5.4.4?运行
第6章?Cloud Native 数据管理
6.1?数据的存储方式
6.1.1?关系型数据库
6.1.2?NoSQL
6.2?DDD 与数据建模
6.2.1?DDD 概述
6.2.2?运用 DDD 进行数据建模
6.3?常用数据访问方式
6.3.1?JDBC
6.3.2?Spring JDBC
6.3.3?JPA
6.4?Spring Data
6.4.1?Spring Data 概述
6.4.2?Spring Data JPA
6.4.3?Spring Data Elasticsearch
6.4.4?Spring Data Redis
6.4.5?Spring Data MongoDB
6.4.6?实战:基于 MongoDB 的文件服务器
第7章?Cloud Native 消息通信
7.1?消息通信概述
7.1.1?消息通信的基本概念
7.1.2?JMS
7.1.3?事件驱动的架构
7.2?消息通信常用模式
7.2.1?点对点模式
7.2.2?发布订阅模式
7.3?CQRS
7.3.1?CQRS 概述
7.3.2?CQRS 的好处
7.3.3?实战:实现 CQRS
7.4?Spring Cloud Stream
7.4.1?Spring Cloud Stream 概述
7.4.2?Spring Cloud Stream 实现发布者
7.4.3?Spring Cloud Stream 实现消费者
7.4.4?实战:基于 Spring Cloud Stream 的消息通信
第8章?Cloud Native 批处理
8.1?批处理概述
8.1.1?需要批处理的原因
8.1.2?常用批处理实现方式
8.2?JDBC Batch
8.2.1?Statement 与 PreparedStatement
8.2.2?实战:使用 JDBC Batch 的例子
8.3?Spring 批处理
8.3.1?使用 JdbcTemplate 实现批处理
8.3.2?批量更新 List
8.3.3?多个批次更新
8.4?Spring Batch
8.4.1?Spring Batch 概述
8.4.2?Job
8.4.3?JobLauncher
8.4.4?JobRepository
8.4.5?Step
8.4.6?ItemReader
8.4.7?ItemWriter
8.4.8?ItemProcessor
8.4.9?实战:使用 Spring Batch 的例子
第9章?Cloud Native 任务调度
9.1?任务执行与调度概述
9.2?Spring TaskExecutor
9.2.1?TaskExecutor 类型
9.2.2?TaskExecutor 应用
9.3?Spring TaskScheduler
9.3.1?Trigger 接口
9.3.2?Trigger 接口的实现
9.4?Spring 任务调度及异步执行
9.4.1?启用调度注解
9.4.2?@Scheduled 注解
9.4.3?@Async 注解
9.4.4?@Async 的异常处理
9.4.5?命名空间
9.5?使用 Quartz Scheduler
9.5.1?使用 JobDetailFactoryBean
9.5.2?使用 MethodInvokingJobDetailFactoryBean
9.6?实战:基于 Quartz Schedule 的天气预报系统
9.6.1?项目概述
9.6.2?后台编码实现
9.6.3?运行
第10章?Cloud Native 运营
10.1?CAP 理论
10.1.1?CAP 理论概述
10.1.2?CAP 只能三选二的原因
10.1.3?CAP 常见模型
10.1.4?CAP 的意义
10.1.5?CAP 的发展
10.2?服务的熔断
10.2.1?熔断的意义
10.2.2?Hystrix 概述
10.2.3?实战:实现微服务的熔断机制
10.3?代码管理
10.3.1?Git 简介
10.3.2?Git 核心概念
10.3.3?Git Flow
10.4?日志管理
10.4.1?日志框架概述
10.4.2?分布式下的日志管理
10.4.3?集中化日志分析
10.4.4?实战:基于 Elastic Stack 的集中化日志管理
10.5?配置管理
10.5.1?分布式下的配置管理的痛点
10.5.2?集中化配置
10.5.3? Spring Cloud Config
10.5.4?实战:基于 Config 实现的配置中心
10.6?应用监控
10.6.1?心跳
10.6.2?Eureka 监测机制
10.6.3?Spring Boot Actuator
10.6.4?实战:基于 Spring Boot Actuator 监测的例子
第11章?Cloud Native 持续发布
11.1?持续集成与持续交付
11.1.1?持续集成概述
11.1.2?持续交付与持续部署
11.1.3?持续交付与持续部署的意义
11.2?持续交付流水线
11.2.1?流水线概述
11.2.2?构建持续交付流水线
11.2.3?构建流水线的工具
11.3?微服务的管理与发布
11.3.1?两个比萨的故事
11.3.2?DevOps 文化
11.3.3?微服务的发布
11.4?容器
11.4.1?虚拟化技术
11.4.2?容器与虚拟机
11.4.3?基于容器的持续部署流程
11.4.4?实战:使用 Docker 来构建、运行和发布微服务
11.5?发布到云
11.5.1?常用云服务
11.5.2?实战:发布应用到云
附录?本书所涉及的技术及相关版本
参考文献
|
|