关于mictoservices的颗粒化方面已经阅读了2比萨规则,可以在2周内开发的服务等。当亚马逊,nelflix,镀金的案例研究被阅读时,我们听到大约100个服务。虽然服务粒度确实有意义,但对我来说仍然不清楚的是这些微服务中的每一个的数据存储。如果每个服务存储/维护自己的数据,是否会有太多的数据存储?它可能是同样的逻辑实体,如产品,客户等,切片和由相应的微服务存储/维护的相关部分/属性。可能存在维护基本客户信息的服务,另一个维护其他客户信息的服务,例如他的订阅信息或他的兴趣等。
数据存储周围出现的几个问题
编辑:稍微编辑主题
答案 0 :(得分:0)
1.Will this not be a huge maintenance issue in terms of backups, restores etc?
从你的观点来看是的。我的意思是在一天结束时你不会只有一个数据库服务器来备份,而是数十或数百个。但大多数人 - 至少我们所做的 - 是使用云数据库服务来摆脱所有这些维护工作。
2.How is the initial data populated into these stores ? Are there any best practices around this ? Organisations are bound to have huge volumes of customer or product data & they will most likely be mastered in other systems.
我不确定是否有最好的方法,但我们创建了一个客户端来读取遗留系统中的数据,然后将其转换并拆分为每个微服务的部分,并通过消费他们的服务将它们推送到那些微服务。我们使用消息队列来确保迁移的健康状况。
3.How does this approach of multiple data stores impact the 'omni-channel' approach where it implies getting a single view of all data? Organizations might have had data consolidation initiatives going on to achieve the same.
嗯,我不知道" omni-channel"是的,我无法回答这个问题。
最后,您提到了服务之间共享的逻辑实体。实现微服务的最难的部分是定义每个服务将提供什么。在这样做的同时,你应该仔细检查每个服务的数据需求,这些服务应该尽可能少地分享,只有实体ID等。至少这就是我们正在做的事情。