我正在学习微服务,我不明白真正的区别
在创建REST API
和创建microservices
之间?
我在Go工作,但我的问题适用于所有语言。
答案 0 :(得分:12)
微服务方法是将您的系统("一堆代码")分解为许多小型服务,每个服务通常都有自己的服务:
服务本身保持小,以便您的系统增长,有更多服务 - 而不是更大的服务。
微服务可以使用REST,RPC或任何其他方法相互通信,因此REST或API实际上与微服务主题正交...
答案 1 :(得分:7)
API = Application Programming Interface
微服务= an architecture
简而言之
在您决定使用微服务之前,您可能需要阅读http://samnewman.io/books/building_microservices/(除非这是出于培训目的)。
答案 2 :(得分:2)
微服务已明确定义,其中每个实体/域独立于任何其他服务。< / p>
例如用户服务仅负责存储,更新和删除用户相关信息。
微服务后端和前端微服务可以进一步分为两部分
Rest API 是更多暴露于外部世界的端点,也可以与微服务一起使用,如上所述。
答案 3 :(得分:1)
大多数答案都是基于老派对API作为编程接口的理解。如今,这种意义已经融化并开始令人困惑,因为一些开发人员开始(为了简单或错误)将应用程序的API作为应用程序本身进行了中断。在这种情况下,不可能区分现代API和微服务。尽管如此,我们可以说API应用程序可以包含许多微服务,其中大部分通过Microservice的API在应用程序内进行交互,而其他微服务可能将其API作为应用程序的API公开。此外,微服务(作为服务)可能不包括其他微服务(服务),但可以通过基于API的调用来协调微服务的组合。应用程序可能包含微服务,但在最佳实践中,可能不包含其他应用程序。
答案 4 :(得分:0)
microservice architecture是关于将应用程序逻辑切成小块或&#34;组件&#34;可以在它们之间起作用和/或通过API公开。
(Web)应用程序需要使用所有对象实体(模型)集合来设计业务逻辑,并对它们进行可能的操作。 (应用程序编程接口)[https://en.wikipedia.org/wiki/Application_programming_interface)是一种通过公开负责调用相应应用程序操作的特定入口点向应用程序发出请求的方法。
REST(ful) APIs (&#34; REST&#34;与Representational State Transfer一样)是至少符合这些5 constraints的API:
所以,虽然这些概念显然是相关的,但它们显然是截然不同的概念:
答案 5 :(得分:0)
用通俗易懂的术语来说,如果您有一个 Web API 服务器,并且将它们拆分为几个独立的小型服务器,请使用代理服务器和负载均衡器将它们集群化,然后(可选地,将每个一个单独的数据库实体),即微服务架构。