文章目录
一、前言
本节课主要是介绍一些概念,比如什么是微服务以及微服务相关的知识点概念,比较重点在于理解同步与异步直接是如何进行的
二、重点概念
面向服务的架构模式
软件服务概述
-
软件服务
软件服务是一种可以通过互联网从远程计算机访问的软件组件。服务通过其发布的接口访问,并且服务的具体实现细节是隐藏的。通常,服务不会维护任何内部状态。状态信息要么存储在数据库中,要么由服务请求者维护。 -
服务请求中的状态管理
当发出服务请求时,状态信息可以作为请求的一部分包含在内,并且更新后的状态信息作为服务结果的一部分返回。由于没有本地状态,服务可以动态地从一个虚拟服务器重新分配到另一个服务器,并可以跨多个服务器复制。
现代Web服务的发展
-
Web服务的起源
在20世纪90年代,经过一系列关于面向服务计算的实验,"大"的Web服务的概念在21世纪初出现。这些服务基于XML协议和标准,如用于服务交互的SOAP和用于接口描述的WSDL。 -
现代服务的简单化
大多数软件服务并不需要Web服务协议设计中固有的广泛适用性。因此,现代面向服务的系统使用更简单、更轻量级的服务交互协议,这些协议具有较低的开销,从而执行速度更快。
微服务架构
-
微服务的定义
微服务是小规模的、无状态的服务,具有单一的功能责任。它们组合在一起创建应用程序。微服务是完全独立的,拥有自己的数据库和用户界面管理代码。 -
微服务架构的优势
如果你需要创建云端软件产品,并且这些产品需要具备适应性、可扩展性和弹性,那么应围绕微服务架构来设计它们。
微服务示例:系统认证
-
认证系统功能分解
系统认证涉及多个功能,如用户注册、身份验证(通过用户ID/密码)、双因素认证等。虽然这些功能可以作为单独的服务使用一个共享的数据库进行管理,但这些功能规模太大,不能直接成为微服务。因此,需要将这些粗粒度的功能进一步细分为更详细的微功能,以确定可以用于认证系统的微服务。 -
认证功能的微服务分解
例如,用户注册功能可以进一步分解为设置新登录ID、设置新密码、设置密码恢复信息、设置双因素认证以及确认注册等子功能。
微服务的特性
-
自包含
微服务没有外部依赖关系。它们管理自己的数据并实现自己的用户界面。