我在微服务架构上工作,我想解决一个小的数据共享问题(我不知道是否是正确的词)。
示例:
我有一个用户服务,是存储电子邮件,用户名,密码的数据库......
我有另一个服务和他的数据库,它使用用户数据来生成包含用户信息的文档。
第二种服务访问用户数据的最佳方式是什么?在她的数据库中复制用户数据(就好,如果他的工作需要)?
答案 0 :(得分:7)
我不知道整个系统的设计,但我会让用户微服务在创建,更新或删除用户时发送事件。对此事件感兴趣的所有其他微服务可以提取他们需要的必要用户数据。
通过使用微服务,无法避免冗余数据,但每个微服务对数据有不同的看法。
您的用户微服务可能会将用户视为具有完整用户数据的身份(例如ID,密码,名字,姓氏,电子邮件,地址,组织等) 另一方面,您的文档生成微服务可能会将用户视为文档的接收者,并且不需要所有用户数据。