我正在尝试使用Lumen(微框架)来实现微服务。经过一些重新学习之后,我才知道微服务 使用SOA(面向服务的体系结构)。
由于使用SOA,因此应用程序必须具有多个松耦合且独立的模块。
我发现很好,例如汤姆先生(Mr.Tom)在git上撰写博客的帖子:https://github.com/tongtastic/lumen-blog。但是在这里我发现只有一个 实体是“发布”。
我需要知道实现微服务的最佳实践是什么,如果我们得到一个实体以上,并且它们之间存在“一对多”或“多对多”的关系。我们将如何使用该关系并获取一些数据。一般来说,一种简单的方法是 通过数据库联接。这种情况适用于Monolithic应用程序(传统应用程序)。
当我需要关联数据时,我应该在代码之间进行API调用吗?
例如我对自己的帖子发表了评论,两者都是不同的实体。我决定将帖子及其API端点放在一台服务器上,并将评论放在另一台服务器上。因此,当有人需要针对特定帖子的评论时,我的功能将运行什么?
function getComments($post_id){
return api_endpoint_to_retrive_comments_againts_post($post_id); // ?
// OR
return retrive_comments_from_db($post_id); // if we are sharing same DB.
}