首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >微服务架构:跨服务数据共享

微服务架构:跨服务数据共享
EN

Stack Overflow用户
提问于 2015-04-06 02:03:50
回答 2查看 9.6K关注 0票数 29

考虑以下针对在线商店项目的微服务:

用户服务保存商店用户的帐户数据(包括名字、姓氏、电子邮件地址等)

购买服务跟踪用户购买的详细信息。

每个服务都提供了一个用于查看和管理其相关实体的UI。Purchase Service索引页面列出了购买。每个购买项目都应包含以下字段:

id、购买用户全名、购买商品名称和价格。

此外,作为索引页面的一部分,我希望有一个搜索框,让商店经理通过购买用户名搜索购买。

我不清楚如何获取购买服务不包含的数据-例如:用户的全名。当试图做更复杂的事情时,问题变得更糟,比如通过购买用户名进行搜索购买。

我认为我可以通过在两个服务之间同步用户来解决这个问题,方法是广播一些关于用户创建的事件(并且只在购买服务端保存相关的用户属性)。在我看来,这远远不是理想的。当你有数百万用户的时候,你怎么处理这个问题呢?您会在每个使用用户数据的服务中创建数百万条记录吗?

另一个明显的选择是在用户服务端公开一个API,它根据给定的ids返回用户详细信息。这意味着在Purchase Service中加载的每个页面,我都必须调用Users Service来获得正确的用户名。不是很理想,但我可以接受。

如何实现基于用户名的购买搜索?我总是可以在Users Service端公开另一个接收查询条件的API端点,对Users Service中的用户名执行文本搜索,然后返回符合条件的所有用户详细信息。在购买服务中,将相关in映射回正确的名称,并在页面中显示它们。这种方法也不是很理想。

我是不是遗漏了什么?有没有其他方法来实现上面的方法呢?也许我面临这个问题的事实是一种代码的味道?希望听到其他的解决方案。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29460485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档