Rest API和微服务之间的真正区别是什么?
我正在学习微服务,但我不明白真正的区别是什么 在创建Rest API和微服务之间的真正区别是什么?,rest,api,architecture,microservices,Rest,Api,Architecture,Microservices,我正在学习微服务,但我不明白真正的区别是什么 在创建restapi和创建microservices之间? 我在Go工作,但我的问题适用于所有语言。微服务方法是将您的系统(“代码堆”)分成许多小服务,每个服务通常都有自己的: 明确与业务相关的责任 运行过程 数据库 代码版本控制(如git)存储库 API(其他服务/客户端如何联系微服务的协议) 用户界面 服务本身保持较小的规模,因此随着系统的发展,会有更多的服务,而不是更大的服务 微服务可以使用REST、RPC或任何其他方法彼此通信,因此RES
restapi
和创建microservices
之间?我在Go工作,但我的问题适用于所有语言。微服务方法是将您的系统(“代码堆”)分成许多小服务,每个服务通常都有自己的:
- 明确与业务相关的责任
- 运行过程
- 数据库
- 代码版本控制(如git)存储库
- API(其他服务/客户端如何联系微服务的协议)
- 用户界面
- Microservice应该公开定义良好的API李>
- 微服务是您可能希望构建解决方案的方式
- API是您的消费者所看到的
- 您可以在后端不使用微服务的情况下公开API(事实上,大多数非培训场景不需要微服务)
在决定使用微服务之前,您可能需要阅读相关内容(除非这是出于培训目的)。当您在实体/域级别遵循SOC-关注点分离时,微服务的定义非常明确,其中每个实体/域独立于任何其他服务 例如用户服务将只负责存储、更新和删除与用户相关的信息 微服务后端和前端微服务可进一步分为两部分
- 用户界面不同于数据存储和操作(客户机-服务器体系结构)
- 服务器上未存储任何客户端上下文(“无状态”)
- 服务器响应必须隐式或显式地将自身定义为可缓存或不可缓存
- 客户机不必知道他和服务器之间的层
- 响应/请求消息必须是:自描述性;允许标识资源;使用表示方式允许操纵资源;宣布可用的操作和资源(“统一接口”)
- 无论是ReSTful还是非ReSTful,API公开服务器提供的操作,这些操作可能(但不一定)被分解成更小的组件(微服务)
- 此外,虽然典型的web(ReST)API在客户端和服务器之间使用HTTP协议,但微服务体系结构中的组件可能会使用其他协议(例如,,,…)进行通信