资源名称: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

Docker12

Docker的架构13

Docker容器14

部署14

小结14

2 设置开发环境17

Spring Boot配置18

Spring Boot概述18

把Spring Boot添加至REST示例19

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

示例REST程序22

编写REST控制器类24

@RestController25

@RequestMapping25

@RequestParam25

@PathVariable26

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

设置应用程序构建30

运行Maven工具30

用Java命令执行31

使用Postman Chrome扩展测试REST API31

更多的正向测试场景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

设置Turbine107

使用容器部署微服务109

安装和配置109

具有4 GB内存的Docker机器110

使用Maven构建Docker映像110

使用 Maven 运行Docker114

使用Docker执行集成测试115

把映像推送到注册表118

管理Docker容器119

参考资料121

小结121

6 实现微服务的安全性123

启用安全套接字层123

身份验证和授权127

OAuth 2.0127

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

MVC158

MVVM158

模块158

提供程序和服务160

作用域161

控制器161

过滤器161

指令162

UI-Router162

OTRS 功能的开发163

主页/餐馆列表页163

index.html164

app.js169

restaurants.js172

restaurants.html179

搜索餐馆180

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

restaurant.html181

登录页面183

login.html184

login.js185

预订确认186

设置web应用程序187

小结201

8 最佳做法和一般原则203

概述和心态203

最佳做法和原则205

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

持续集成和部署206

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

自我监控和记录207

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

事务边界210

微服务框架和工具210

Netflix开放源码软件(OSS)210

构建——Nebula211

部署和交付——Spinnaker与Aminator211

服务注册和发现——Eureka211

服务沟通——Ribbon212

电路断路器——Hystrix212

边缘(代理)服务器——Zuul212

业务监控——Atlas213

可靠性监控服务——Simian Army213

AWS资源监控——Edda214

主机性能监控——Vector215

分布式配置管理——Archaius215

Apache Mesos调度器——Fenzo215

成本和云利用率——Ice216

其他安全工具——Scumblr和FIDO216

参考资料217

小结218

9 故障排除指南219

日志记录和ELK环境219

简要概述221

Elasticsearch221

Logstash221

Kibana222

ELK环境安装222

安装Elasticsearch223

安装Logstash224

安装Kibana225

服务调用关联ID的使用226

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

依赖项和版本227

循环依赖关系及其影响227

设计系统时需要分析它227

维护不同版本227

让我们228

参考资料228

小结228

资源截图:

Java微服务