资源名称:Java微服务

内容简介:

微服务是利用云平台开发企业应用程序的最新技术,它是小型、轻量和过程驱动的组件。微服务适合设计可扩展、易于维护的应用程序。它可以使开发更容易,还能使资源得到最佳利用。《Java微服务》帮助你用Java构建供企业使用的微服务架构,内容包括微服务核心概念和框架、大型软件项目的高层次设计、开发环境设置和前期配置、对微服务架构持续集成的部署、实现微服务的安全性、有效地执行测试、微服务设计的最佳做法和一般原则,以及如何检测和调试问题。

《Java微服务》适合想要了解微服务架构,以及想要深入了解如何有效地实施企业级微服务的Java 开发人员。

作者简介:

Sourabh Sharmahas具有十年以上的产品/应用程序开发经验。他的专长是开发、部署和测试多层web应用程序。他喜欢解决复杂的问题,并寻找最佳的解决方案。

在他的职业生涯中,他已成功地为财富500强的客户开发和交付了各种独立应用程序和云应用程序,给他们带来很多收益。

Sourabh还为他的总部设在美国的顶尖企业产品公司发起并开发了一种基于微服务的产品。他在大学时代,即20世纪90年代后期,开始编写Java程序,而且至今仍然热爱这项工作。

审阅者简介

Guido Grazioli担任过种类繁多的业务应用程序的开发人员、软件架构师和系统集成人员,他的工作跨越多个领域。他是一位复合型软件工程师,对Java平台和工具,以及Linux系统管理都有深入了解;对SOA、EIP、持续集成和交付,以及在云环境中的服务业务流程尤其感兴趣

资源目录:

前言 XV

1 一种解决方法 1

微服务的演变 2

整体式架构概述 3

整体式架构的局限性与它的微服务解决方案的对比 3

一维的可扩展性 6

在出故障时回滚版本 7

采用新技术时的问题 7

与敏捷实践的契合 8

减轻开发工作量——可以做得更好 9

微服务的构建管道 10

使用诸如Docker的容器部署 11

容器 11

Docker 12

Docker的架构 13

Docker容器 14

部署 14

小结 14

2 设置开发环境 17

Spring Boot配置 18

Spring Boot概述 18

把Spring Boot添加至REST示例 19

添加一个嵌入式Jetty服务器 21

示例REST程序 22

编写REST控制器类 24

@RestController 25

@RequestMapping 25

@RequestParam 25

@PathVariable 26

制作一个示例REST可执行应用程序 29

设置应用程序构建 30

运行Maven工具 30

用Java命令执行 31

使用Postman Chrome扩展测试REST API 31

更多的正向测试场景 34

反向的测试场景 35

NetBeans IDE安装和设置 37

参考资料 42

小结 42

3 领域驱动设计 43

领域驱动设计基本原理 44

组成部分 45

普遍存在的语言 45

多层架构 45

表示层 46

应用程序层 46

领域层 46

基础架构层 47

领域驱动设计的工件 47

实体 47

值对象 48

服务 49

聚合 50

存储库 52

工厂 53

模块 54

战略设计和原则 55

有界上下文 55

持续集成 56

上下文映射 57

共享内核模式 58

客户和供应商模式 58

顺从者模式 59

反腐层 59

独立方法 59

开放主机服务 60

精馏 60

示例领域服务 60

实体的实现 61

存储库的实现 63

服务的实现 66

小结 67

4 实现微服务 69

OTRS概述 70

开发和实现微服务 71

餐馆微服务 72

控制器类 73

服务类 76

存储库类 79

实体类 82

预订和用户服务 85

注册和发现服务(Eureka服务) 85

执行 87

测试 87

参考资料 92

小结 92

5 部署和测试 93

使用Netflix OSS的微服务架构概述 93

负载均衡 95

客户端的负载均衡 95

服务器端的负载均衡 98

电路断路器与监控 102

使用Hystrix的回退方法 102

监控 103

设置Hystrix仪表板 105

设置Turbine 107

使用容器部署微服务 109

安装和配置 109

具有4 GB内存的Docker机器 110

使用Maven构建Docker映像 110

使用 Maven 运行Docker 114

使用Docker执行集成测试 115

把映像推送到注册表 118

管理Docker容器 119

参考资料 121

小结 121

6 实现微服务的安全性 123

启用安全套接字层 123

身份验证和授权 127

OAuth 2.0 127

OAuth的用法 128

OAuth 2.0规范——简明详细信息 128

OAuth 2.0角色 129

OAuth 2.0客户端注册 131

OAuth 2.0协议端点 135

OAuth 2.0授权类型 137

使用Spring Security的OAuth实现 144

授权码许可 150

隐式许可 153

资源所有者密码凭据许可 154

客户端凭据许可 155

参考资料 155

小结 156

7 利用微服务Web应用程序来使用服务 157

AngularJS框架概述 157

MVC 158

MVVM 158

模块 158

提供程序和服务 160

作用域 161

控制器 161

过滤器 161

指令 162

UI-Router 162

OTRS 功能的开发 163

主页/餐馆列表页 163

index.html 164

app.js 169

restaurants.js 172

restaurants.html 179

搜索餐馆 180

餐馆详细信息与预订选项 181

restaurant.html 181

登录页面 183

login.html 184

login.js 185

预订确认 186

设置web应用程序 187

小结 201

8 最佳做法和一般原则 203

概述和心态 203

最佳做法和原则 205

Nanoservice(不推荐)、规模和整体性 205

持续集成和部署 206

系统/端到端测试自动化 207

自我监控和记录 207

每个微服务都使用独立的数据存储区 209

事务边界 210

微服务框架和工具 210

Netflix开放源码软件(OSS) 210

构建——Nebula 211

部署和交付——Spinnaker与Aminator 211

服务注册和发现——Eureka 211

服务沟通——Ribbon 212

电路断路器——Hystrix 212

边缘(代理)服务器——Zuul 212

业务监控——Atlas 213

可靠性监控服务——Simian Army 213

AWS资源监控——Edda 214

主机性能监控——Vector 215

分布式配置管理——Archaius 215

Apache Mesos调度器——Fenzo 215

成本和云利用率——Ice 216

其他安全工具——Scumblr和FIDO 216

参考资料 217

小结 218

9 故障排除指南 219

日志记录和ELK环境 219

简要概述 221

Elasticsearch 221

Logstash 221

Kibana 222

ELK环境安装 222

安装Elasticsearch 223

安装Logstash 224

安装Kibana 225

服务调用关联ID的使用 226

让我们看看怎样解决这个问题 226

依赖项和版本 227

循环依赖关系及其影响 227

设计系统时需要分析它 227

维护不同版本 227

让我们 228

参考资料 228

小结 228

资源截图:

1.png

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。