【问题标题】:Simplest example of a microservices project?微服务项目的最简单示例?
【发布时间】:2019-08-24 04:47:24
【问题描述】:

我正在尝试学习如何为 Python37 标准环境以微服务模式开发 GAE 应用程序。对于我来说,这是一个黑匣子,我可以想象应用程序的哪些组件应该成为服务,哪些不应该。

我的理解是,每个服务都应该代表应用程序的一个“业务”组件。从概念上讲,这对我来说有点模糊。例如,如果我们正在构建一个待办事项应用程序,我们应该如何将其划分为各种服务?

我不明白的另一个领域是服务如何相互通信。根据文档,服务使用如下 HTTP 请求相互调用:

http://[VERSION_ID].[SERVICE_ID].[MY_PROJECT_ID].appspot.com
https://[VERSION_ID]-dot-[SERVICE_ID]-dot-[MY_PROJECT_ID].appspot.com

这是否意味着我们使用请求库来发出请求,如下所示?

import requests 
requests.get(https://[VERSION_ID]-dot-[SERVICE_ID]-dot-[MY_PROJECT_ID].appspot.com)

我还不太了解实现微服务的更多方面。话虽如此,我想请求一个完整的微服务应用程序的基本代码示例。谢谢。

【问题讨论】:

    标签: google-app-engine google-cloud-platform microservices


    【解决方案1】:

    例如,如果我们正在构建一个待办事项应用程序,我们应该如何划分它 进入各种服务?

    这在逻辑上(而不是技术上)。您可以将您的功能划分为几个按逻辑分组的 API。我使用这样的 API:s 我按以下方式分组:

    • “用户 API”,处理身份验证和与用户相关的功能。
    • “资源 API”处理创建、查看和编辑存储在数据存储中的资源。在您的情况下,这可能是创建、获取和编辑单个 TODO 列表。
    • 处理资源列表和集合的“集合 API”。在您的情况下,这可能是查看多个 TODO 列表并将其分组在一起。
    • 为数据存储操作提供低级功能的“数据存储 API”。

    以上只是我的例子。在您的情况下,这将取决于您的特定功能,并且有很多方法可以对您的 API 进行分组,但您应该将“业务逻辑”组合在一起,而不是技术上。

    服务如何相互通信*?

    您需要loose coupling,并且通常通过 HTTP 和 RESTful API 进行通信,该 API 具有一些最好是人类可读的格式,例如 JSON。因此,一个服务可以与另一个服务建立 RESTful 连接,发送或接收 JSON 数据,并且这些服务将独立和划分,以便您可以彼此独立地工作和部署服务。

    【讨论】:

    • 一本书还不够回答! DDD(领域驱动开发)是一个很好的起点。微服务必须处理自己的数据,与其他服务松散耦合,并大量横向扩展并独立于其他服务。他们可以使用 restful json API 进行通信,也可以使用 grpc。可以部署服务网格来控制服务通信,......有很多主题要涵盖......
    猜你喜欢
    • 2019-05-24
    • 1970-01-01
    • 2020-02-14
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多