【发布时间】:2018-01-29 01:26:05
【问题描述】:
我用 Django 创建了我的 API,但我不明白如何将 API 转换为微服务,我不明白它们之间的真正区别。 我看到一个类似于微服务的 API,但我不知道将整个 API 转换为微服务,我需要创建微 Web 服务器吗?
拜托,我不懂微服务,我需要了解这一点。
【问题讨论】:
标签: api microservices
我用 Django 创建了我的 API,但我不明白如何将 API 转换为微服务,我不明白它们之间的真正区别。 我看到一个类似于微服务的 API,但我不知道将整个 API 转换为微服务,我需要创建微 Web 服务器吗?
拜托,我不懂微服务,我需要了解这一点。
【问题讨论】:
标签: api microservices
微服务通过 API 公开它的接口,它可以做什么。 API 是微服务在收到命令/查询时响应的所有端点的列表。微服务包含 API和它用来响应客户端请求的其他内部+隐藏的东西。
API 是客户在查看微服务时看到的所有内容,尽管微服务比这更大。微服务隐藏了它的内部结构、技术栈、数据库类型(sql、nosql - 可以是任何东西);微服务可以从sql 移动到nosql,从python 移动到php,但保持其API 不变。
【讨论】:
API - 这是一种通过网络公开功能的方式。想象一下,您已经在 .Net 中开发了一些功能,但不是您正在用不同的语言开发一些软件。你会再次开发相同的功能吗?不。所以,只需通过 Web 服务公开它。Web 服务不依赖于任何一种操作系统或编程语言。例如,用 Java 开发的应用程序可以与用 C#、Android 等开发的应用程序通信,反之亦然。
微服务 - 它们用于将复杂的软件分解成小块可单独部署、可测试、松散耦合的子模块。微服务旨在应对大型应用程序的故障和故障。由于多个独特的服务正在一起通信,因此可能会发生特定服务失败的情况,但整体较大的应用程序不会受到单个模块失败的影响。
API 与微服务 - 现在我们已经将复杂的软件分解为松散耦合的子模块。这些子模块通过 API 相互通信。因此,微服务和 API 可以解决不同的问题,但可以协同工作!
更多详情:
【讨论】:
微服务是一种自治的 RESTful 服务。这意味着,每台服务器上只有一项服务。在 Spring Boot 中,当您引导 RESTful 服务时,它将获取一个 tomcat 实例(它是嵌入式 tomcat)并在其上运行您的服务。因此,如果您在服务器上拥有多个服务,则它不是微服务,因为这些服务不是自治的。
【讨论】: