学透 Spring:从入门到项目实战
丁雪丰
美团研究员
1073 人已学习
立即订阅
登录后,你可以任选4讲全文学习
课程目录
已完结/共 45 讲
时长 07:11
时长 15:51
时长 00:10
时长 02:03
时长 00:39
学透 Spring:从入门到项目实战
15
15
1.0x
00:00/00:00
登录|注册

第 12 章 微服务与云原生应用

本章内容
微服务的基本概念
RESTful 风格微服务的设计思路
云原生应用的基本概念
云原生时代下的十二要素应用
早期的应用大多是单体(monolithic)应用,所有的功能都集中在一个庞大的应用中,为了支撑这么一个“庞然大物”,有时甚至需要将它部署在小型机上。如果应用的某个功能容量不足,我们无法按需变更,只能对整个应用做扩容。后来 SOA(Service Oriented Architecture,面向服务的架构)的概念兴起,大家开始把大应用拆小。近几年,SOA 又进一步发展到了微服务,再加上云计算技术的广泛应用,开发一个高可用的分布式应用的成本越来越低了。在开始各种实践操作前,我们先来了解一下微服务与云原生相关的概念,随后看一下 REST 这一重要的服务设计风格。

12.1 走近微服务

在大家的日常工作中,应该或多或少已经与微服务打过一些交道了,只是自己可能没有察觉到,因为微服务的运用已经越来越常见了。那什么样的服务才能算是微服务,它又有什么特点呢?下面就让我们一起跟微服务来个“亲密接触”。

12.1.1 什么是微服务

2014 年,Martin Fowler 在一篇名为“Microservices”的博客文章中对微服务做了比较详细的介绍。按照文中的说法,微服务是一种软件设计方法,即以若干组可独立部署的服务的方式进行软件应用系统的设计,通过一组小型服务来构建整个应用系统。与之对应的就是传统的单体应用,一小一大形成了鲜明的对比。后来,Sam Newman 出版了《微服务设计》一书,书中将微服务定义为“一些小而自治的服务”,我们该如何理解其中的“小而自治”呢?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了微服务与云原生应用的基本概念和特点,以及REST架构在微服务设计中的重要性。微服务作为一种软件设计方法,通过一组小型服务构建整个应用系统,与传统的单体应用形成鲜明对比。其特点包括模块化和扩展性,将大系统拆分为多个可独立部署的单元,实现高耦合、低内聚的特点,同时提升了系统的扩展性。文章还介绍了微服务与SOA的关系,指出微服务是对SOA的一种正确落地方式。此外,REST架构作为设计微服务的主流选择,其核心概念包括资源、资源的表述、状态转移、统一接口和超文本驱动。文章还介绍了Richardson成熟度模型,用来指导RESTful风格服务的落地,分为四个层级,从下往上分别是POX(Plain Old XML)的泥沼、资源、HTTP 动词、超媒体控制。这些内容为读者提供了深入了解微服务和REST架构的基础知识和设计原则。同时,文章还强调了领域驱动设计(DDD)对于微服务的重要性,强调了“开发微服务,设计先行”的理念。整体而言,本文内容丰富,涵盖了微服务和REST架构的核心概念,对于想要深入了解这些技术的读者具有很高的参考价值。文章还介绍了Spring Cloud框架,通过对大量云原生应用开发过程中需要考虑的问题做了抽象,提供了与不同云厂商的适配,为读者提供了更多实践经验和工具支持。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《学透 Spring:从入门到项目实战》
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部