×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
暂无评论
图文详情
  • ISBN:9787302542681
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:233
  • 出版时间:2020-01-01
  • 条形码:9787302542681 ; 978-7-302-54268-1

本书特色

适读人群 :本书面向熟悉Java EE的Java开发人员。对于大型应用,如果能从小而简单的组件起步,开发和维护就会变得更容易。现在的Java开发者享有广泛的支持微服务应用开发的工具,包括大小合适的应用服务,开源的框架,以及定义良好的模式。*重要的是,你可以使用已有的Java技能开发微服务应用。 《企业级Java微服务实战》讲授基于JVM的微服务应用的设计和构建。首先通过与传统的Java EE应用进行比较来学习微服务的设计。作者Ken Finnigan以实用的角度介绍了全景的概念,以及用于实现它们的工具和技术。你会探索微服务生态中的组件,比如用于容错的Netflix Hystrix,并且掌握恰如其分的应用服务器(JeAS)的使用方法。为了确保平稳的运维,还会研究监控、安全性、测试以及云上的部署。

内容简介

  对于大型应用,如果能从小而简单的组件起步,开发和维护就会变得更容易。现在的Java开发者享有广泛的支持微服务应用开发的工具,包括大小合适的应用服务,开源的框架,以及定义良好的模式。重要的是,你可以使用已有的Java技能开发微服务应用。  《企业级Java微服务实战》讲授基于JVM的微服务应用的设计和构建。首先通过与传统的Java EE应用进行比较来学习微服务的设计。作者Ken Finnigan以实用的角度介绍了全景的概念,以及用于实现它们的工具和技术。你会探索微服务生态中的组件,比如用于容错的Netflix Hystrix,并且掌握恰如其分的应用服务器(JeAS)的使用方法。为了确保平稳的运维,还会研究监控、安全性、测试以及云上的部署。

目录

第Ⅰ部分 微服务基础

第1章 企业级Java微服务 3

1.1 企业级Java 简史 3

1.1.1 什么是企业级Java 4

1.1.2 典型的企业级Java架构 4

1.1.3 什么是单体 7

1.1.4 与单体相关的问题有哪些 8

1.2 微服务和分布式架构 9

1.2.1 只做好一件事 9

1.2.2 什么是分布式架构 10

1.2.3 为什么要关心分布式 11

1.2.4 可以做些什么帮助开发微服务 13

1.2.5 项目产品 13

1.2.6 持续集成和持续交付 13

1.3 迁移至微服务的模式 14

1.3.1 领域驱动模式 14

1.3.2 大爆炸模式 16

1.3.3 绞杀者模式 16

1.3.4 混合模式 17

1.4 什么是企业级Java微服务 18

1.5 本章小结 20

第2章 开发一个简单的RESTful微服务 21

2.1 Cayambe单体 21

2.2 新管理站点 23

2.2.1 用例 25

2.2.2 应用的架构 25

2.2.3 使用JAX-RS创建RESTful端点 27

2.2.4 运行 30

2.3 本章小结 32

第3章 恰如其分的微服务应用服务器 33

3.1 恰如其分的应用服务器 33

3.1.1 什么是JeAS 34

3.1.2 JeAS的优点 37

3.1.3 Eclipse MicroProfile 39

3.2 选择恰如其分的应用服务器 40

3.2.1 海滩度假示例应用 40

3.2.2 Dropwizard——原始的有主见的微服务运行时 42

3.2.3 Payara Micro ——精简到JAR中的Java EE应用服务器 45

3.2.4 Spring Boot——有主见的Spring微服务 48

3.2.5 Thorntail——*灵活的JeAS运行时 51

3.2.6 如何比较它们 53

3.3 本章小结 54

第4章 微服务的测试 55

4.1 需要哪些类型的测试 55

4.2 单元测试 56

4.3 什么是不可变性 59

4.4 集成测试 60

4.5 消费者驱动的契约测试 68

4.6 额外的阅读 75

4.7 额外的练习 76

4.8 本章小结 76

第5章 云原生开发 77

5.1 云到底是什么 77

5.2 服务模型 78

5.3 云原生开发 80

5.4 部署到云 81

5.5 开始使用Minishift 82

5.6 微服务的云部署 83

5.7 在云中测试 87

5.8 额外练习 90

5.9 本章小结 91

第Ⅱ部分 实现企业级Java微服务

第6章 消费微服务 95

6.1 使用Java客户端库消费微服务 99

6.1.1 java.net 99

6.1.2 Apache HttpClient 102

6.2 使用JAX-RS客户端库消费微服务 103

6.2.1 JAX-RS客户端 103

6.2.2 RESTEasy客户端 106

6.3 本章小结 109

第7章 服务发现 111

7.1 为什么微服务需要被发现 111

7.1.1 什么是服务发现 112

7.1.2 服务发现和服务注册中心有什么好处 114

7.1.3 无状态与有状态的微服务 116

7.1.4 什么是Netflix Ribbon 116

7.2 使用Thorntail注册微服务 118

7.2.1 Thorntail的拓扑 118

7.2.2 使用拓扑注册微服务 120

7.3 使用Thorntail消费已注册的微服务 123

7.3.1 使用Netflix Ribbon进行服务查找 123

7.3.2 使用RESTEasy客户端进行服务查找 127

7.4 本章小结 130

第8章 容错和监控的策略 131

8.1 分布式架构中的微服务故障 131

8.2 网络故障 134

8.3 缓解故障 134

8.3.1 Hystrix是什么 134

8.3.2 断路器 137

8.3.3 隔舱 140

8.3.4 回退 142

8.3.5 请求缓存 143

8.3.6 综合运用 144

8.3.7 Hystrix仪表盘 146

8.4 把Hystrix添加到Payment微服务 148

8.4.1 使用Hystrix与RESTEasy客户端 149

8.4.2 使用Hystrix与Ribbon客户端 152

8.5 本章小结 153

第9章 微服务的安全 155

9.1 保护微服务的重要性 155

9.1.1 为什么安全性很重要 155

9.1.2 安全性需要解决哪些问题 157

9.2 使用Keycloak 159

9.2.1 理解Keycloak的特性 159

9.2.2 设置Keycloak 159

9.3 保护Stripe微服务 163

9.3.1 配置Keycloak 163

9.3.2 保护Stripe资源 165

9.3.3 在Payment资源中进行身份验证 167

9.3.4 测试受保护的微服务 168

9.4 捕获用户身份验证 170

9.4.1 配置Keycloak 171

9.4.2 保护类别删除 172

9.4.3 在UI中对用户进行身份验证 173

9.4.4 测试新UI和服务 176

9.5 本章小结 177

第10章 构建微服务混合体 179

10.1 Cayambe单体 179

10.2 运行Cayambe单体 181

10.2.1 配置数据库 182

10.2.2 配置WildFly 182

10.2.3 运行Cayambe 184

10.3 Cayambe混合体 185

10.3.1 与Payment微服务集成 187

10.3.2 集成Admin微服务 192

10.3.3 新的管理UI 193

10.3.4 Cayambe混合体小结 193

10.4 部署到混合云中 193

10.4.1 数据库 194

10.4.2 安全性 196

10.4.3 微服务 197

10.4.4 Cayambe混合体 197

10.4.5 Cayambe EAR 199

10.4.6 管理UI 199

10.5 本章小结 199

第11章 使用Apache Kafka 201

11.1 Apache Kafka能做什么 201

11.1.1 数据流 201

11.1.2 Apache Kafka 202

11.2 用数据流简化单体架构 206

11.3 部署并使用Kafka来实现数据流 208

11.3.1 Openshift中的Kafka 208

11.3.2 Admin微服务 210

11.3.3 Kafka消费者 212

11.4 额外练习 216

11.5 本章小结 216

附录A Spring Boot微服务 217

A.1 剖析Spring Boot项目 217

A.1.1 查看一个新初始化的Spring Boot项目 217

A.1.2 启动Spring 218

A.1.3 测试Spring Boot应用 219

A.1.4 配置应用的属性 220

A.2 Spring Boot启动器依赖项 221

A.2.1 使用启动器依赖项 221

A.2.2 指定基于方面的依赖项 222

A.2.3 重写启动器传递的依赖项 223

A.3 开发Spring Boot应用 225

A.3.1 专注于应用的功能 225

A.3.2 定义领域 225

A.3.3 定义资源库接口 226

A.3.4 创建Web接口 227

A.4 Spring Boot测试 230

A.5 本附录小结 233


展开全部

作者简介

  肯·芬尼根(Ken Finnigan),曾担任全球各地企业的顾问和软件工程师,具有超过20年的从业经验。他领导着Thorntail项目,该项目旨在让使用Java和Java EE为云开发微服务变得尽可能容易。他曾担任LiveOak和其他JBoss项目的项目负责人。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航