万本电子书0元读

万本电子书0元读

顶部广告

微服务实践电子书

目前微服务架构在软件发领域得到了广泛应用,因为它可以将一个大规模的应用分而治之,从而分解成许多较小规模的微服务,这样在减少系统内部各组件依赖的同时,还可以让整个系统易于维护和扩展。采用微服务架构的应用可以很容易地修复其中某个微服务的故障,从而消除系统彻底宕机的可能性。本书使用Java语言,并以实际的样例来说明如何快速高效地构建和实施可扩展的微服务架构。

售       价:¥

纸质售价:¥44.20购买纸书

771人正在读 | 1人评论 6.3

作       者:[印度]乌姆什 拉姆 夏尔玛(Umesh Ram Sharma)

出  版  社:人民邮电出版社

出版时间:2019-01-01

字       数:17.0万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:此类商品不支持退换货,不支持下载打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
近些年来,微服务一直是非常热门的话题,关于微服务架构的讨论也是层出不穷。本书以贯穿整书的示例为出发,由浅深地阐述使用微服务的*实践,以及如何避免采用微服务架构可能带来的复杂性陷阱。本书从微服务架构本身的特征手,讨论微服务组件的设计指导原则、有效通信的方式以及常见的安全挑战和数据模型的选择;然后微服务架构的测试部分,探讨微服务的测试挑战和解决方法、监控和扩展常用的实践以及如何将现有架构演变为微服务架构;*后总结微服务架构在设计和发方面遇到的常见问题及解决方案。 近些年来,微服务一直是非常热门的话题,关于微服务架构的讨论也是层出不穷。本书以贯穿整书的示例为出发,由浅深地阐述使用微服务的*实践,以及如何避免采用微服务架构可能带来的复杂性陷阱。本书从微服务架构本身的特征手,讨论微服务组件的设计指导原则、有效通信的方式以及常见的安全挑战和数据模型的选择;然后微服务架构的测试部分,探讨微服务的测试挑战和解决方法、监控和扩展常用的实践以及如何将现有架构演变为微服务架构;*后总结微服务架构在设计和发方面遇到的常见问题及解决方案。
【推荐语】
目前微服务架构在软件发领域得到了广泛应用,因为它可以将一个大规模的应用分而治之,从而分解成许多较小规模的微服务,这样在减少系统内部各组件依赖的同时,还可以让整个系统易于维护和扩展。采用微服务架构的应用可以很容易地修复其中某个微服务的故障,从而消除系统彻底宕机的可能性。本书使用Java语言,并以实际的样例来说明如何快速高效地构建和实施可扩展的微服务架构。 本书以微服务架构的简要介绍为切,将微服务架构与其他架构行了相关比较,详细探讨了微服务组件的重要特和微服务端之间的通信方式,以及如何建立有效的数据模型,如何对微服务行测试和快速部署,然后总结了软件应用从单体架构迁移至微服务架构的zui佳实践,zui后着眼于微服务架构的监控、扩展和故障排除,可以为发人员从头实现微服务架构下坚实的基础。 读者将学到以下内容: ■ 了解服务发现和外部配置在微服务整体架构中所扮演的角色; ■ 学习如何在事件驱动的微服务中使用消息代理; ■ 学习如何在不同组件之间混合使用各种数据管理策略; ■ 基于Spring Boot的发环境对微服务行多种类型的测试; ■ 将持续集成应用于微服务架构中; ■ 使用多种工具来监控和扩展自己的微服务应用。
【作者】
作者简介 Umesh Ram Sharma是一名软件发工程师,在可扩展、分布式云服务应用的架构、设计及发方面有8年以上的经验。他从印度卡纳塔克邦州放大学获得信息技术专业的硕士学位。出于对微服务和Spring的兴趣,他成了J2EE、JavaScript、Struts、Hibernate和Spring方面的专家,也具有AWS、J2EE、MySQL、MongoDB、memchached、Apache、Tomcat和Hazelcast等技术的实践经验。 Umesh Ram Sharma目前是ZestMoney公司的首席软件工程师,帮助他的团队将当前项目迁移至微服务。闲暇时,他喜欢车兜风、烹饪和参加新技术的各种大会。 译者简介 占红来是一位咨询师,致力于帮助客户和成就客户。曾主持过某世界500强等大型公司的软件一体化发平台的测试能力提升等落地项目,得到客户的一致好评,并受邀再次合作。 刘博毕业于哈尔滨工业大学,是一位拥有十多年测试经验的软件工程师,主攻自动化测试、性能测试和架构调优领域,对这些领域流行的技术体系和架构风险都有准确的把握。他积极参加对外的技术论坛,把在IBM、活跃网络和思特沃克的经验积累加以总结并分享给业内相关人士,获得众多好评。
目录展开

内容提要

译者序

译者简介

作者简介

审阅者简介

前言

资源与支持

第1章 微服务架构简介

1.1 常规微服务架构

1.2 微服务架构的特征

1.2.1 问题定义

1.2.2 解决方案

1.3 做好微服务架构面临的挑战

1.3.1 通过日志调试

1.3.2 服务监控

1.3.3 公共库

1.3.4 服务之间的消息传递

1.3.5 微服务的部署和版本管理

1.4 微服务的未来

1.4.1 无服务架构

1.4.2 微服务即PaaS

1.5 与传统架构相比微服务架构的优势

1.6 是不是看起来与SOA很像

1.7 将业务领域划分为微服务组件

围绕业务功能组织微服务组件

1.8 到底要不要使用微服务

1.8.1 组织认同度

1.8.2 体验DevOps

1.8.3 分析现有数据库模型

1.8.4 自动化和CI/CD

1.8.5 集成

1.8.6 安全

1.8.7 成功迁移的例子

1.9 示例项目(信用风险评估引擎)

1.10 Spring

1.11 Spring Boot

使用Spring Boot,一切都变得很简单

1.12 小结

第2章 定义微服务组件

2.1 微服务的定义

2.2 服务发现及其用途

2.2.1 DNS

2.2.2 服务发现的请求

2.2.3 服务发现模式示例

2.2.4 整个架构中的配置外化

2.3 API网关及其诉求

2.3.1 认证鉴权

2.3.2 不同协议

2.3.3 负载均衡

2.3.4 请求转发(包括服务发现)

2.3.5 响应转换

2.3.6 断路器

2.3.7 API网关的优劣性

2.4 API网关的例子

贯穿本书的示例应用

2.5 用户注册微服务的开发

配置服务器

2.6 小结

第3章 微服务端点之间的通信

3.1 微服务间应该如何通信

3.2 编制和编排

3.2.1 编制

3.2.2 编排

3.3 同步通信和异步通信

3.3.1 同步通信

3.3.2 异步通信

3.3.3 财务服务

3.4 小结

第4章 微服务端点的安全

4.1 微服务的安全挑战

4.1.1 复合技术栈或者存在遗留代码

4.1.2 认证和授权(访问控制)

4.1.3 基于令牌的安全实践

4.1.4 安全性的责任

4.1.5 编制风格的风险

4.1.6 微服务之间的通信

4.2 与OpenID的OAuth 2.0一起使用JWT

4.2.1 OpenID

4.2.2 OAuth 2.0

4.2.3 JWT

4.2.4 示例应用

4.3 小结

第5章 创建高效的数据模型

5.1 数据和建模

与传统数据模型的对比

5.2 单体架构中的数据模型

5.3 SOA中的数据模型

5.4 微服务架构中的数据模型

5.4.1 每个微服务限定一些数据库表

5.4.2 每个微服务一个数据库

5.4.3 Saga模式

5.4.4 必要时采用混合数据技术

5.5 从单体应用向微服务迁移数据模型

5.5.1 领域驱动设计

5.5.2 数据模型迁移方式

5.6 小结

第6章 测试微服务

6.1 微服务中测试的目的

6.2 单元测试

6.3 集成测试

6.4 组件(服务)测试

6.5 契约测试

6.5.1 Pact

6.5.2 Spring Cloud Contract

6.6 端到端测试

6.7 更进一步

6.8 小结

第7章 部署微服务

7.1 持续集成

7.2 持续交付

7.3 用微服务配置CI和CD工具

7.4 微服务的Docker化

7.4.1 Docker

7.4.2 Docker引擎

7.4.3 Docker镜像

7.4.4 Docker存储

7.4.5 应用程序在Docker中是如何工作的

7.4.6 公共、私有和官方的镜像库

7.4.7 Docker与VM的区别

7.4.8 在Linux中安装Docker

7.5 在Docker化的微服务中使用开源CI工具

7.6 小结

第8章 演进现有系统

8.1 从哪里开始

8.1.1 架构视角和最佳实践

8.1.2 数据库视角和最佳实践

8.2 示例应用及其演变过程

8.2.1 用户管理服务

8.2.2 购物车/订单服务

8.2.3 支付服务

8.2.4 配送/跟踪服务和通信服务

8.2.5 产品推荐服务

8.2.6 调度服务

8.3 小结

第9章 微服务的监控和扩展

9.1 微服务系统的监控原则

9.1.1 如何设置并使用警报

9.1.2 从一开始做好监控和发布渠道规划

9.1.3 自动扩展和自动发现

9.1.4 监控前门流量

9.2 监控模式的发展变化

9.3 日志记录有助于监控

9.4 微服务系统的扩展原则

9.4.1 x轴

9.4.2 y轴

9.4.3 z轴

9.5 实施扩展策略前请三思

9.6 微服务的监控和扩展工具

9.7 小结

第10章 故障排除

10.1 使用微服务时的常见问题

10.1.1 性能下降

10.1.2 日志记录位置因编程语言而异

10.1.3 多组件之间的耦合或依赖问题

10.1.4 服务部署数量与日俱增

10.1.5 监控多项服务,发现性能下降或其他问题

10.1.6 日志与不同组件的关系

10.2 常见问题的解决方法

10.2.1 解决性能问题的步骤

10.2.2 处理不同语言生成的并处于不同位置的日志记录

10.2.3 服务之间的依赖关系

10.2.4 DevOps专家积极参与

10.2.5 监控

10.3 小结

累计评论(1条) 1个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部