我正在学习微服务,遇到了问题。
背景
我正在开发两个微服务:
- 用户管理,基于Spring,使用MySQL数据库
- 计划管理,基于ASP.NET,使用SQL Server数据库。该服务的唯一访问点是列出一些RESTful端点的API,如
/planning/{day}/{userId}或/planning/{startDate}/{endDate}/{idUser}
- 账单管理,基于Node.Js,使用MongoDB。
问题
我该如何才能只允许通过用户服务访问计划信息,而不耦合这两个服务?知道计划服务以后可能会从其他地方访问,但现在还没有。
我该如何访问与MySQL数据库中的用户对应的账单服务中的账单信息?我知道微服务之间没有耦合,这一点让我很困扰,因为它必须以某种方式耦合,对吧?像在账单中引用
idUser
这样的方式?否则,我怎么知道哪些账单应该在我的API中公开呢?更准确地说,微服务如何进行通信,而不需要耦合?如何创建身份验证,而不需要从其他服务中复制身份验证请求到身份验证服务?