在线商店和微服务

时间:2015-08-26 03:44:02

标签: restful-architecture microservices

我在一家大型网上商店工作。目前,我们的架构很奇怪,我们有微服务,实际上所有微服务都共享相同的数据库(根本不能正常工作......)。 我正在考虑改进它,但在如何使它们独立方面遇到一些挑战。

这是一个用例。我有客户,客户购买产品。假设我有3个微服务:客户认证,订单管理,产品管理。 订单链接到客户和产品。 你能描述一下以下问题的解决方案:

  1. 如何在订单和客户之间建立链接?
  2. 假设两个服务共享一个客户ID,您如何处理数据一致性?如果您在客户服务方面删除了客户,则最终会出现不一致。如果您的服务必须通知其他服务,那么您最终会得到严格的耦合服务,这对我来说听起来就像您想要首先避免的那样。您可以通过一个事件机制来避免这种情况,该事件机制会通知每个人,但当您甚至不知道谁应该接收事件时会出现网络错误呢?
  3. 我想做一个简单的查询:检索购买产品A的美国客户。鉴于有300万人购买了产品A,我们在美国拥有100万客户;你怎么能让这个合理的表现? (我们当前的DB将在几毫秒内执行)
  4. 我无法想到代码中我们没有这种关系的任何部分。我能想到的解决方案之一就是复制数据。例如。当客户购买东西时,订单管理服务将存储客户详细信息和产品详细信息。你最终会进行海量数据复制,不确定这是不是一件好事,我仍然会担心一致性。

    我找不到解决这些问题的论文。有哪些不同的选择?

0 个答案:

没有答案