【发布时间】:2020-04-26 08:48:39
【问题描述】:
我们考虑将单体应用程序迁移到微服务,我们正处于研究阶段,因为这是我们第一次使用微服务。
目前我们考虑有3种微服务:
- Api 网关 - 使用 rpc 与域服务通信
- 域服务- 封装不同部分逻辑的服务,通过api与网关通信,异步事件相互通信。每个人都有自己的数据库
- 基础设施服务 - 如电子邮件、短信等
到目前为止,我有一些关于如何正确拆分域逻辑的问题,感谢一些最佳实践和有用的资源。此外,我将提供一些逻辑示例和几种不同的划分方式。
应用程序逻辑:我们有两个用于最终用户前端管理 api 的网关 api。
应用程序是一种社交网络,每个用户都有自己的个人资料,可以通过不同的标准(地理位置、爱好、总兼容性百分比)搜索其他人的添加到朋友、实时聊天、重新计算与其他人的兼容性。该应用程序的主要特点是计算人与人之间的兼容性的算法,它考虑了出生日期和地点以及在用户注册和更改用户帐户类型时收集的其他一些标准。并且取决于用户帐户类型(可以由管理员购买或设置),他有不同级别的兼容性计算。
所以我们有:用户、个人资料、用户搜索、地理位置、朋友、付款、帐户类型和权限(acl 的种类)、兼容性计算、聊天。
我不确定是否应该将上面列出的每个微服务视为独立的微服务,或者例如我可以将用户、个人资料、帐户类型/权限和朋友分组到一个微服务中,而用户搜索和地理到另一个微服务中。
【问题讨论】:
标签: architecture microservices