在微服务世界中,你很少听到关于数据的话题。关于应用应该是无状态的、云原生等信息很多。但最终,你需要处理状态并将它存储在某个地方。
我不怪这个盲点。数据很复杂。在一个容器会被随机杀死的不稳定宇宙中,数据会更复杂。这些问题正在许多方面被解决,我们也做了我们的 一份贡献。
但是,一旦你处理了弹性问题,你需要解决第二个问题:数据演变。在微服务世界中,这个问题更加严重。
-
数据结构可以且将会比每个微服务更快地演变。记住这个单独的小狗应该是小巧、可管理,并且像芭蕾舞者一样敏捷。
-
为了使你的服务有用,数据必须从微服务之间流动,而不需要互锁。因此,他们直接或通过副本共享数据结构,或通过显式模式等。需要同时发布微服务A、B和C,因为它们共享公共数据结构,这是绝对不允许的。
我的同事 Edson Yanaga 写了一本关于这些问题的简短但富有洞察力的书。如何在零停机微服务世界中处理数据。如何安全且增量地演变数据结构。如何使用你旧有的遗留RDBMS来完成这些。还有更多主题。
如果你对微服务之旅感兴趣,或者正在开始这段旅程,我建议你阅读这本书。这将使你在思考上有所进步。
这本书是免费的(或者更准确地说,Red Hat支付了账单)。去获取一份迁移到微服务数据库 - O’Reilly(你需要注册)。