前言

本文的目标是让架构师和程序员学会使用微服务架构成功开发应用程序。

本文不仅讨论了微服务架构的好处,还描述了它们的弊端。读者将掌握如何在使用单体架构和使用微服务架构之间做出正确的权衡。

谁应该阅读本文?

本文的重点是架构和开发,适合负责开发和交付软件的任何人(例如开发人员、架构师、CTO或工程副总裁)阅读。

本文侧重于解释微服务架构的设计模式和其他概念。无论读者使用何种技术栈,我的目标都是让你们可以轻松读懂这本文。
你只需要熟悉企业应用程序架构和设计的基础知识即可。特别是,需要了解三层架构、Web应用程序设计、关系型数据库、使用消息和基于REST的进程间通信,以及应用程序安全性的基础知识等概念。本文的代码示例使用Java和Spring框架。为了充分利用它们,读者应该对Spring框架有所了解。

因为本文的内容实在是太多了,所以小编只把部分知识点粗略的介绍一下子,更加详细的内容还需要大家来学习和探索,希望本文能够帮助到大家的学习!!!

主要内容安排

本文主要由13章组成。

■第1章描述了所谓“单体地狱”的症状,当单体应用程序超出其架构时会出现这种问题,这可以通过采用微服务架构来规避。这一-章还概述了微服务架构模式语言,这也是本文大部分内容的主题。

第2章解释了为什么软件架构很重要,描述了可用于将应用程序分解为服务集合的模式,并解释了如何克服在此过程中遇到的各种障碍。

第3章介绍了微服务架构中强大的进程间通信的几种模式,解释了为什么异步和基于消息的通信通常是最佳选择。

第4章介绍如何使用Saga模式维护服务间的数据一致性。 Saga 是通过传递异步消息的方式进行协调的一系列本地事务。

第5章介绍如何使用领域驱动设计(DDD)的聚合和领域事件等模式为服务设计业务逻辑。

第6章以第5章为基础,解释了如何使用事件溯源模式开发业务逻辑,事件溯源模式是一种以事件为中心的设计思路,用来构建业务逻辑和持久化领域对象。

第7章介绍如何使用API组合模式或命令查询职责隔离(CQRS)模式,这两个模式用来实现查询分散在多个服务中的数据。

第8章介绍了处理来自各种外部客户端请求的外部API模式,例如移动应用程序、基于浏览器的JavaScript应用程序和第三方应用程序。

第9章是关于微服务自动化测试技术的两章中的第一章,介绍了重要的测试概念,例如测试金字塔,描述了测试套件中每种测试类型的相对比例,还展示了如何编写构成测试金字塔基础的单元测试。

第10章以第9章为基础,描述了如何在测试金字塔中编写其他类型的测试,包括集成测试、消费者契约测试和组件测试等。

第11章介绍了开发生产就绪服务的各个方面,包括安全性、外部化配置模式和服务可观测性模式。服务可观测性模式包括日志聚合、应用指标和分布式追踪。

第12章介绍了可用于部署服务的各种部署模式,包括虚拟机、容器和Serverless模式。还介绍了使用服务网格的好处,服务网格是在微服务架构中处理服务间通信的一个网络软件层。

第13章介绍了如何通过采用绞杀者( Strangler)模式逐步将单体架构重构为微服务架构,绞杀者模式是指以服务形式实现新功能,从单体中提取模块将其转换为服务。

在学习这些章节的过程中,读者将了解微服务架构的不同方面。

一线大牛CEO、CTO对本文的高度评价

喻勇翻译的这本书是近几年我所看到的众多论述微服务架构书籍中最好的一本。该书围绕微服务的架构设计,深入浅出地介绍了微服务与SOA等其他架构的区别,软件系统服务的拆分策略,微服务的同步和异步通信模式,如何使用微服务进行事务管理,如何在微服务架构中设计业务逻辑。同时详细描述了微服务架构中的测试和生产部署策略。该书所总结出的架构经验对设计微服务架构有很好的指导作用,建议软件研发人员认真研读。

陈斌,易宝支付CTO

这本书里,不仅有微服务领域E经识别出来的问题、解决思路和解决方案,也有相应的代码例子。这本书可以帮助微服务相关人员构建知行合- -的能....这是-本可以帮你在设计微服务架构时做出取舍的书,它能在你处理微服务相关问题左右为难的时候给你提供参考和建议。

一蔡书, 独立顾问,PolarisTech联合创始人

书中既包含了微服务的原理、原则,又包含了实际落地中的架构设计模式;既包含可举- -反三的理念和概念,也包含类似领域驱动设计、Saga实现事务操作、CQRS构建事件驱动系统等具体可套用的范式....相信本书对于企业CIO推动公司数字化转型战略、软件开发者提升自身技术架构功力,以及云原生爱好者以微服务切入最新的云原生体系,都有着极其重要的实践指导意义。

一张鑫, 才云科技CEO

都可获取,乘风破浪会有时,直挂云帆济沧海。

多位大厂专家鼎力推荐,44个微服务架构设计模式pdf,程序员福利相关推荐

  1. 云享专家倪升武:微服务架构盛行的时代,你需要了解点 Spring Boot

    [摘要] 微服务架构的本质在于分布式.去中心化. 随着互联网的高速发展,庞大的用户群体和快速的需求变化已经成为了传统架构的痛点. 在这种情况下,如何从系统架构的角度出发,构建出灵活.易扩展的系统来快速 ...

  2. 资深架构专家聊小团队中微服务困境及分布式事务解决方案

    自微服务的概念被提出,距今已经7年之久,微服务也被很多企业争相追捧,不管是最早的亚马逊.Netflix还是我们每天都要用一用的淘宝. 但我仍然要说,过早的优化无异于一场灾难,特别对于小团队而言. 你的 ...

  3. 进大厂必须掌握的50个微服务面试问题!

    顶级微服务面试问题 根据Gartner的说法,微服务是云开发的新应用平台.微服务是独立部署和管理的,一旦在容器内实现,它们与底层操作系统的交互很少. 因此,如果您计划在微服务中开始您的职业生涯,那么现 ...

  4. 演讲之禅:一位技术演讲家的自白(献给需要参加公共演讲的程序员精英们)

    演讲之禅:一位技术演讲家的自白(献给需要参加公共演讲的程序员精英们) 基本信息 原书名: Confessions of a Public Speaker 原出版社: O'Reilly Media 作者 ...

  5. 推荐:微服务架构的深度解析!

    通过采用微服务架构,企业最大的收益是帮助内部IT建设沿着可演进的方向发展.支持灵活扩展.降低运维成本.快速响应业务变化. 这些底层技术能力的提升让业务更加敏捷.成本可控,企业也可以从中获得技术红利和市 ...

  6. 互联网大厂的微服务架构系统应对超大流量解决方案

    常见的限流方式有: 限制总并发数(数据库连接池.线程池等等) 限制瞬时并发数(如Nginx的limit_conn模块) 限制时间窗口的平均速率(如Guava的RateLimiter.Nginx的lim ...

  7. ThoughtWorks专家:使用 DDD 指导微服务拆分的逻辑

    对于服务拆分的逻辑来说,是先设计高内聚低耦合的领域模型,再实现相应的分布式系统.服务的划分有一些基本的方法和原则,通过这些方法能让微服务划分更有操作性.最终在微服务落地实施时也能按图索骥,无论是对遗留 ...

  8. 有位哥们坚持不用微服务架构,被老板踢出了群聊···

    有个哥们坚持说不用微服务,说也可以把系统功能分模块化部署在不同的机器,只不过每个模块有可能需要一个nginx,可是实践之后发现,模块多了,nginx也就多了,那么nginx的配置和维护nginx就更麻 ...

  9. 推荐一篇微服务硬核文章 6 张图带你搞懂微服务

    我是非典型理科男号主.点击上方蓝字关注. 关注后你可以收获最硬核的知识分享, 最有趣的互联网故事 推荐老王的一篇关于微服务的文章. 通过文章你可以了解到 单体架构到微服务架构的变化,ServiceMe ...

  10. 首席架构师推荐:史上最全微服务架构简史详解!

    本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件.本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节. 要理解微服务,首先要先理解不是微服 ...

最新文章

  1. 电子学会青少年编程等级考试Python一级题目解析10
  2. MySql笔记之数据表
  3. [HEOI2014]平衡(整数划分数)
  4. php怎么添加框架,PHPWind 给默认的风格添加大框架
  5. 【转】Asp.net页面的生命周期
  6. WinCE的开发流程
  7. 从字符串中提取(“获取”)一个数字
  8. PHP内存溢出:Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes)
  9. php自动填表单,网页自动填表基础教程从简单开始
  10. 会员积分系统运营的五个操作步骤
  11. 计算机键盘按键功能说明,电脑键盘各个按键功能分别是什么 电脑键盘各个按键功能介绍...
  12. Windows10两台电脑通过网线进行文件共享
  13. 大二第六周(逐渐暴躁的一周)
  14. html制作唯品会登陆页面,login.html
  15. NO.119 不懂语言代码,超级菜鸟的建站分享(二):界面设置。
  16. android usb流程
  17. onedrive指定文件夹备份
  18. 时钟抖动(Jitter)的基本概念 【转载】
  19. [UVA156]反片语 Ananagrams 题解(映射:map 详解)
  20. autojs之小白带你一步一步定制播放器

热门文章

  1. 【FFmpeg学习】H264 视频编码格式详细总结
  2. Vue-cli3 ,js根据汉字或拼音模糊搜索功能,汉字支持同音字、多音字,支持首字母
  3. 【认知femto】femtocell的认知无线电频谱感知算法性能仿真
  4. java文件对比工具
  5. [Excel] 数据透视表
  6. GNSS说第(三)讲---最新的GNSS观测数据及精密星历等产品的下载方式及地址
  7. 初中英语和计算机融合的教学案例,信息技术与初中英语学科教学的深度融合
  8. VMware虚拟机安装xp系统
  9. 如何查看java安装路径
  10. chrome frame解决IE9一下不兼容问题