微服务传递实体id guid或唯一代码

时间:2017-08-30 15:35:26

标签: rest wcf domain-driven-design microservices

我们有两种不同的微服务客户服务和订单服务。客户服务商店有关客户的信息,即名称,DOB等。订单服务将管理客户所下的订单,即订单号,成本等。这是将客户唯一参考/ ID传递给订购服务的最佳方式。

解决方案1: 客户ID是客户服务中唯一的GUID。这将传递给订单服务

解决方案2: 在客户服务中生成业务/人员友好的唯一代码,并将其传递给订单服务

解决方案3: 还有别的吗?

1 个答案:

答案 0 :(得分:5)

我建议你第一个选择。它与在其他环境中使用的ID相同,因此您不需要创建仅用于共享参考的内容。

关于第二个,是否有任何背景原因,你不会分享真正的Id,而是生成密钥?如果是(你对此没有任何说明),那么第二个会更好,因为你"保护"你不想分享的内容。这需要一种方法,在CustomerMicroservice上,从生成的密钥中获取用户(如果需要)。

编辑:

有"原因"我的意思是不需要Id的操作(这会有点奇怪),但是,例如,用户需要访问该信息以与呼叫中心进行交互。在这种情况下,人类可读的价值远比Guid好。