Spring微服务9787121340857pdf下载

Spring微服务9787121340857百度网盘pdf下载

作者:
简介:Spring微服务9787121340857
出版社:
出版时间:2018-05
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

基本信息

  • 商品名:Spring微服务9787121340857
  • ISBN:9787121340857
  • 定价:88
  • 出版社:电子工业出版社
  • 作者:[印]Rajesh,RV(拉杰什.,RV)

参考信息(以实物为准)

  • 出版时间:2018-05-01
  • 印刷时间:
  • 版次:1
  • 印次:1
  • 包装:平装
  • 开本:16开
  • 用纸:轻型纸
  • 页数:340
  • 字数:405000

内容简介

Spring是一个基于Java平台的应用程序框架,基于Spring的开发基本已经成为了业界的一种规范。此书将帮助你用Spring框架,Spring Boot,Spring Cloud来实现微服务的架构。本书的这些案例都是基于*新的Spring框架所写,这样你会学习到如何编写一个*新潮,*稳定的基于Java语言的系统。此书开始将一步一步告诉你如何使用Spring来开发微服务,并且深度学习Spring Boot, Spring Cloud, Docker, Mesos, and Marathon各个主流的框架的使用方法,下一步,你会学到如何扩容和缩容你的微服务并教会你如何发布你的微服务到Docker容器平台,如何用Marathon和Mesos去管理你的微服务。通过本书的案例,*后,你将会真正的获得如何开发你自己的微服务并发布它们到真实的生产平台。

前言序言

Spring微服务之我见

文彦峰,彭艳飞


微服务正被越来越多的组织和团体关注。微服务架构有很多好处,它通过分解巨大单体式应用为多个服务方法解决了复杂性问题。在功能不变的情况下,应用被分解为多个可管理的分支或服务。每个服务都有一个API定义清楚的边界。微服务架构模式给采用单体式编码方式很难实现的功能提供了模块化的解决方案。由此,单个服务很容易开发、理解和维护。这种架构使得每个服务都可以由专门开发团队来开发,并且每个微服务都可以独立部署。

但是,微服务架构也有它的不足。微服务是一个分布式的系统架构,由此会带来固有的复杂性,开发者需要了解RPC或者RESTful接口之间的消息传递内容,甚至协议。如果是单体式开发,开发者就不需要过多地关注接口,只需要关注本身的业务内容的开发即可。

在微服务架构应用中,需要更新不同服务所使用的数据库,甚至是不同的数据库类型。这就需要我们了解分布式事务,或者定义一个□终一致的方法,从而对开发者提出更高的要求和挑战。

另外一个挑战在于,微服务架构模式应用的改变将会波及多个服务。例如,完成一个案例,需要修改服务A、B、C,而A依赖B,B依赖C。在单体式应用中,只需要改变相关模块,整合变化,部署就可以了。相比之下,微服务架构模式就需要考虑相关改变对不同服务的影响。

测试一个基于微服务架构的应用也是很复杂的任务。例如,测试一个单体式Web应用的REST API是很容易的事情;反过来,采用流行的Spring Boot架构,同样的服务测试需要启动与其有关的所有服务,这样就给测试带来了一定的复杂性。

部署一个微服务应用也很复杂,而一个单体式应用只要简单地在网关后面部署各自的服务即可。相比之下,一个微服务应用一般由大批服务构成,如果互相依赖,需要全部部署起来,它们才能通信并完结一个业务流程。除此之外,还需要一个服务发现机制,用来发现与其进行通信服务的地址。

本书由浅入深的介绍了基于Spring Boot的微服务开发,可以帮助读者了解Spring Boot、Spring Cloud、Docker、Mesos和Marathon的使用,详细介绍了Spring Cloud各种能力的实现。同时也讲述了微服务的自动化扩缩容,以及服务的日志记录和微服务的监控。读完本书,你能够很容易的搭建一套基于Spring Boot的微服务系统。

本书的翻译经历了很多困难,能够顺利完成,特别需要感谢吴疆、刘子豪、宋达彬、陈灿、叶东林、张凯旋、何文雅等人的大力协助。


前言

微服务是一种架构风格和模式,通过将复杂系统分解成更小的、彼此协同工作的服务,形成大规模的商业服务。微服务是自主的、自包含的和可独立部署的服务。在当今世界,许多企业构建大型的、面向服务的企业应用程序时,都默认将微服务作为标准。

Spring框架是多年以来开发社区流行的编程框架。Spring Boot取消了重量级的应用容器,并提供了轻量级部署,Serverless架构应用。Spring Cloud结合了许多Netflix OSS组件,并提供了一个生态系统来运行和管理大型微服务。它提供了负载均衡、服务注册、服务监控、服务网关等能力。

然而,微服务也面临着许多挑战,如监控、管理、分发、扩容、服务发现等,特别是在大规模部署的时候。单纯使用微服务而不解决这些常见的微服务问题,会导致灾难性的后果。这本书□重要的部分是一个与技术无关的微服务能力模型,有助于解决常见的微服务挑战。

本书的目标是以务实的方式指导读者实现大规模实施响应式微服务,帮助读者深入了解Spring Boot、Spring Cloud、Docker、Mesos和Marathon。读者将会理解Spring Boot如何通过去除重量级应用服务器,来实现自主、无须服务器的部署。读者将学习Spring Cloud各种能力的实现,集装箱化的Docker、Mesos和Marathon的使用,并学会抽象计算资源和控制集群范围。

我相信读者会喜欢这本书的每一章节。本书通过成功构思微服务,可以为你的生意增加巨大的价值。本书通过列举一些例子来体现微服务的实践能力,包括一个旅游领域的研究案例。□后,你将学会如何使用Spring框架、Spring Boot和Spring Cloud实现微服务的体系结构。它们是经过测试的、具有强大功能的工具,可以开发和部署可扩展的微服务。在本书的帮助下,你可以使用Spring的□新规范来构建现代的、互联网规模的Java应用程序。

章节概要

□□章“解密微服务”,涵盖了微服务的基本概念、演变过程,以及他们与面向服务的架构的关系,并且介绍了云原生和十二要素应用程序的概念。

第2章“用Spring Boot构建微服务”,介绍了使用Spring框架构建REST-和基于消息的微服务及如何用Spring Boot包装它们。另外,我们还将探索Spring Boot的一些核心功能。

第3章“微服务概念的应用”,通过详细描述开发人员在企业级微服务中所面临的挑战,来阐述微服务的实践性。并且会总结成功管理微服务生态系统所需的能力。

第4章“微服务的演变——一个案例的学习”,通过研究BrownField航空公司的微服务演变案例,向读者展示如何应用前面章节所学的微服务概念。

第5章“通过Spring Cloud对微服务进行扩(缩)容”,展示了如何使用Spring Cloud堆栈功能扩容之前构建的微服务。本章详细介绍了Spring Cloud的架构和组件,以及它们是如何整合在一起的。

第6章“自动化扩(缩)容微服务”,演示了使用服务网关和简单的生命周期管理器,来实现微服务的弹性化和自我管理。本章向读者展示了在现实世界中,可以让服务网关变得更加智能化。

第7章“日志记录和监控微服务”,涵盖了日志在开发和监控微服务中的重要性。在这里,我们将详细介绍使用开源工具进行集中式日志记录和监控的□佳实践,以及如何将它们与Spring项目集成。

第8章“用Docker实现容器化微服务”,解释容器化在微服务环境中的概念。本章通过Mesos和Marathon演示了如何大规模部署微服务,来替换自定义生命周期管理器的实现方式。

第9章“使用Mesos和Marathon管理Dockerized微服务”,介绍了微服务的自动配置和部署。本章你也将学习如何使用Docker容器将前面构建的微服务进行大规模部署。

准备工作

第2章“用Spring Boot构建微服务”,需要下列软件来运行代码:

? JDK 1.8

? Spring Tool Suite 3.7.2 (STS)

? Maven 3.3.1

? Spring Framework 4.2.6.RELEASE

? Spring Boot 1.3.5.RELEASE

? spring-boot-cli-1.3.5.RELEASE-bin.zip

? RabbitMQ 3.5.6

? FakeSMTP

第5章“通过Spring Cloud对微服务进行扩(缩)容”,除了上述软件之外还需要:

? Spring Cloud Brixton.RELEASE

在第7章“日志记录和监控微服务”中,我们将介绍集中式日志如何在微服务中实现,这需要以下软件堆栈:

? Elasticsearch 1.5.2

? kibana-4.0.2-darwin-x64

? Logstash 2.1.2

第8章“用Docker实现容器化微服务”将演示如何使用Docker进行微服务部署,这需要以下软件组件:

? Docker version 1.10.1

? Docker Hub

第9章“使用Mesos和Marathon管理Dockerized微服务”使用Mesos和Marathon将Dockerized微服务部署到可自动扩展的云中。需要使用下列软件组件:

? Mesos version 0.27.1

? Docker version 1.6.2

? Marathon version 0.15.3

读者对象

本书主要针对Spring开发人员,他们希望构建互联网规模应用程序以满足现代业务需求。本书通过检验一些真实的用例和实践代码实例,来帮助开发人员了解究竟什么是微服务,以及当今社会微服务为什么如此重要。开发人员将懂得如何构建简单的RESTful服务,并将其有机地发展成为真正的企业级微服务生态系统。

对架构师而言,他们使用Spring框架、Spring Boot、Spring Cloud设计强大的互联网规模微服务,并用Docker、Mesos与Marathon进行管理。当他们需要在这方面寻求帮助时,本书中的能力模型将帮助架构师设计出超出本书所讨论的工具和技术的方案。

约定

在本书中,你会发现很多区分多种不同信息的文本样式。这里是一些样式的例子及其解释。

文本中的代码、数据库表名、文件夹名称、文件名、文件扩展名、路径名、虚拟URLs、用户输入和Twitter句柄等如下所示:

“下列属性可以在application.properties进行自定义应用程序相关信息。”


代码块设置如下:

<parent>

  <groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.3.4.RELEASE</version>

</parent>


任何命令行输入或输出的写法如下:

$ java -jar fakeSMTP-2.0.jar


提示和技巧显示如下:

提示

使用AWS Lambda,研发人员可以将应用托管到云服务平台。

下载代码文件

本书的代码文件托管在GitHub上,你可以通过https://github.com/369945969/Spring-Microservices下载代码文件。

文件下载完成后,请确保你的解压缩或解压缩


目录

目  录  
□□章  解密微服务 1
微服务的演进 2
命令式架构的演进 4
什么是微服务 5
微服务――蜂窝类比 8
微服务原则 8
微服务的特性 10
微服务中服务的特性 11
微服务案例 17
微服务的好处 22
与其他架构风格的联系 31
微服务使用案例 40
总结 44
第2章  用Spring Boot构建微服务 45
开发RESTful服务――传统方法 46
传统Web应用转移到微服务 49
使用Spring Boot构建RESTful微服务 50
开始使用Spring Boot 51
使用CLI开发Spring Boot微服务 51
使用STS开发Spring Boot Java微服务 52
下一步是什么 63
Spring Boot配置 63
修改默认嵌入的Web服务器 66
实现Spring Boot安全性 67
为微服务开启跨域访问 71
实现Spring Boot通知 72
Spring Boot Actuator 84
配置应用信息 86
添加自定义运行状况模块 86
记录微服务 88
总结 90
第3章  微服务概念的应用 91
模式和常见设计决策 92
微服务的挑战 122
微服务能力模型 127
总结 132
第4章  微服务的演变――一个案例的学习 133
回顾微服务能力模型 134
理解PSS应用 135
庞然大物的终结 139
使用微服务来拯救 144
业务用例 144
为演化制定计划 145
只有在需要时迁移模块 161
目标架构 162
目标实现视图 167
总结 172
第5章  通过Spring Cloud对微服务 进行扩(缩)容 173
回顾微服务 174
回顾BrownField航空的PSS系统实践 174
什么是Spring Cloud 175
建立BrownField PSS的环境 179
Spring Cloud Config 180
一个声明式的REST客户端Feign 194
用于负载均衡的Ribbon 196
注册和发现的Eureka 198
API网关――Zuul代理 208
反应式微服务流 215
总结BrownFeild PSS架构 219
总结 220
第6章  自动化扩(缩)容微服务 221
回顾微服务功能模型 221
用Spring Cloud扩(缩)容微服务 222
理解自动化扩(缩)容的概念 223
自动化扩(缩)容方法 228
总结 240
第7章  日志记录和监控微服务 241
回顾微服务能力模型 242
理解日志管理的挑战 242
集中式日志解决方案 244
日志方案的选择 245
微服务监控 254
使用数据湖泊的数据分析 265
总结 266
第8章  用Docker实现容器化微服务 267
回顾微服务功能模型 267
理解BrownField PSS微服务的区别 268
什么是容器 269
VMs与容器之间的区别 270
容器的好处 272
微服务和容器 273
Docker简介 274
在Docker中部署微服务 278
在Docker上运行RabbitMQ 281
使用Docker Registry 282
云上的微服务 283
在EC2上运行BrownField服务 284
更新生命周期管理器 285
容器化的未来――内核和强化安全 285
总结 286
第9章  使用Mesos和Marathon管理Dockerized微服务 287
回顾微服务功能模型 288
缺少的部分 288
为什么集群管理很重要 289
集群管理能做什么 290
与微服务的关系 293
与虚拟化的关系 293
集群管理解决方案 293
集群管理与Mesos和Marathon 296
为BrownField微服务实现Mesos和Marathon 300
生命周期管理器的部署 312
技术元模型 313
总结 314

作者简介

Rajesh RV是一名经验丰富的IT架构师,拥有丰富的多元化经验技术和超过16年的航空IT从业经验。Rajesh获得了印度科钦大学的计算机工程学位,他在EJB的早期加入了JEE社区Spring。期间他作为架构师参与了航空领域的许多大型的关键任务项目,包括新一代航空客运预订系统(iFlyRes)和Next下一代航空公司货运预订系统(Skychain和CROAMIS)。目前,Rajesh在阿联酋(http://www.emirates.com/)担任首席架构师,专注于许多领域的架构产品解决方案,如JEE、SOA、NoSQL、物联网、移动、UI、集成等。在阿联酋,由Rajesh团队设计的开放旅游平台(OTP)赢得了2011年RedHat成本类别的创新奖。2011年,他介绍了Honeycomb的创新概念,是一种基于六边形架构模式的架构,用于升级和转化遗留系统架构。
文彦峰,拥有超过10年以上互联网行业经验,在移动通讯架构,分布式架构,业务架构算等方面积累了丰富经验。目前是顺丰科技有限公司平台架构部负责人,目前带领大团队有超过50人的开发与测试,主要是从事公司内部项目的研发,负责重点项目的落地和推广,探索"互联网+”的道路。