【问题标题】:What is the difference between an API and Microservice?API 和微服务有什么区别?
【发布时间】:2018-01-29 01:26:05
【问题描述】:

我用 Django 创建了我的 API,但我不明白如何将 API 转换为微服务,我不明白它们之间的真正区别。 我看到一个类似于微服务的 API,但我不知道将整个 API 转换为微服务,我需要创建微 Web 服务器吗?

拜托,我不懂微服务,我需要了解这一点。

【问题讨论】:

    标签: api microservices


    【解决方案1】:

    微服务通过 API 公开它的接口,它可以做什么。 API 是微服务在收到命令/查询时响应的所有端点的列表。微服务包含 API它用来响应客户端请求的其他内部+隐藏的东西。

    API 是客户在查看微服务时看到的所有内容,尽管微服务比这更大。微服务隐藏了它的内部结构、技术栈、数据库类型(sqlnosql - 可以是任何东西);微服务可以从sql 移动到nosql,从python 移动到php,但保持其API 不变。

    【讨论】:

    • 你会有一个实际的例子吗?,因为我理解,但通常我将我的网络服务器创建为一个 API,而不是一个包含 API 和更多东西的微。
    • 举个例子?
    • 任何服务器/微服务在 API 中都包含许多其他内容,例如数据库访问组件。
    • 我的帖子能回答你的问题吗?如果是,请将其标记为解决方案。如果没有,请告诉我。
    【解决方案2】:

    API - 这是一种通过网络公开功能的方式。想象一下,您已经在 .Net 中开发了一些功能,但不是您正在用不同的语言开发一些软件。你会再次开发相同的功能吗?不。所以,只需通过 Web 服务公开它。Web 服务不依赖于任何一种操作系统或编程语言。例如,用 Java 开发的应用程序可以与用 C#、Android 等开发的应用程序通信,反之亦然。

    微服务 - 它们用于将复杂的软件分解成小块可单独部署、可测试、松散耦合的子模块。微服务旨在应对大型应用程序的故障和故障。由于多个独特的服务正在一起通信,因此可能会发生特定服务失败的情况,但整体较大的应用程序不会受到单个模块失败的影响。

    API 与微服务 - 现在我们已经将复杂的软件分解为松散耦合的子模块。这些子模块通过 API 相互通信。因此,微服务和 API 可以解决不同的问题,但可以协同工作!

    更多详情:

    The Difference between Web Services and Micro Services

    RESTful API vs Microservice

    【讨论】:

    • 致 Nitpick:API 不一定是 Web 界面; c-lib 通过其 API 使用,每个代码库都公开并根据其 API 使用;应用程序可能会公开一个 API 供插件使用等。API 是一个非常抽象的概念
    【解决方案3】:

    微服务是一种自治的 RESTful 服务。这意味着,每台服务器上只有一项服务。在 Spring Boot 中,当您引导 RESTful 服务时,它将获取一个 tomcat 实例(它是嵌入式 tomcat)并在其上运行您的服务。因此,如果您在服务器上拥有多个服务,则它不是微服务,因为这些服务不是自治的。

    【讨论】:

      猜你喜欢
      • 2018-01-09
      • 2019-07-16
      • 1970-01-01
      • 2017-11-16
      • 2011-05-12
      • 2018-01-21
      • 2013-10-20
      • 2020-11-30
      • 2012-03-16
      相关资源
      最近更新 更多