【问题标题】:What is the best way of splitting application logic into microservices将应用程序逻辑拆分为微服务的最佳方法是什么
【发布时间】:2020-04-26 08:48:39
【问题描述】:

我们考虑将单体应用程序迁移到微服务,我们正处于研究阶段,因为这是我们第一次使用微服务。

目前我们考虑有3种微服务:

  1. Api 网关 - 使用 rpc 与域服务通信
  2. 域服务- 封装不同部分逻辑的服务,通过api与网关通信,异步事件相互通信。每个人都有自己的数据库
  3. 基础设施服务 - 如电子邮件、短信等

到目前为止,我有一些关于如何正确拆分域逻辑的问题,感谢一些最佳实践和有用的资源。此外,我将提供一些逻辑示例和几种不同的划分方式。

应用程序逻辑:我们有两个用于最终用户前端管理 api 的网关 api。

应用程序是一种社交网络,每个用户都有自己的个人资料,可以通过不同的标准(地理位置、爱好、总兼容性百分比)搜索其他人的添加到朋友、实时聊天、重新计算与其他人的兼容性。该应用程序的主要特点是计算人与人之间的兼容性的算法,它考虑了出生日期和地点以及在用户注册和更改用户帐户类型时收集的其他一些标准。并且取决于用户帐户类型(可以由管理员购买或设置),他有不同级别的兼容性计算。

所以我们有:用户、个人资料、用户搜索、地理位置、朋友、付款、帐户类型和权限(acl 的种类)、兼容性计算、聊天。

我不确定是否应该将上面列出的每个微服务视为独立的微服务,或者例如我可以将用户、个人资料、帐户类型/权限和朋友分组到一个微服务中,而用户搜索和地理到另一个微服务中。

【问题讨论】:

    标签: architecture microservices


    【解决方案1】:

    开发微服务架构时的一般目标:

    • 您应该能够独立交付和部署服务 彼此的。
    • 开发团队应该能够独立于其他服务实施服务。

    现在肯定没有一种“正确”的方法可以实现这一点,所以这里有一些我发现有用的资源和最佳实践:

    根据您问题中的信息,在不了解更多细节的情况下,我认为您可以合理地将您的一些实体分组到一个微服务中,但这确实是一个应该由领域专家做出的决定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 2017-01-22
      • 1970-01-01
      • 2020-12-01
      相关资源
      最近更新 更多