在单片应用程序中,我有一个像这样的示例数据库
User
id: serial
name : string
password :string
..
Blog
id : serial
body : string
author_id : Int
当我想获得包含作者信息的帖子列表时,我只是进行内部联接查询。如果我将我的系统更改为微服务。博客和用户是独立的服务。他们将拥有自己的数据库。 我应该在博客数据库中添加author_id列吗? 如果博客数据库没有author_id,我怎样才能获得包含作者信息的帖子列表? 我真的需要一个Nodejs中微服务的例子
答案 0 :(得分:0)
是的,您应该在博客数据库中添加author_id列。但你不应该添加外键。
如果您想获得包含相关用户信息的帖子列表,您应该使用API网关模式。 API网关是所有微服务的链接元素。此元素向微服务发出请求,然后以编程方式合并响应。
例如,您可以将此功能用于合并响应:
function(a, b, select) {
var m = a.length, n = b.length, c = [];
for (var i = 0; i < m; i++) {
var x = a[i];
for (var j = 0; j < n; j++) { // all combinations
var y = select(x, b[j]); // filter out the rows and columns you want
if (y) c.push(y); // if a row is returned add it to the table
}
}
return c;
}
此外,您可以找到API网关的交钥匙解决方案。