我试图了解微服务模式的布局.鉴于每个微服务都将在其VM上运行(为了示例),数据库如何适应这种架构?
反过来,每个服务是否会连接到统一数据库以读取/写入数据?
感谢您的任何见解
最佳答案 没有一种尺寸适合所有解决方案.
一般原则是每个微服务应该根据正确的持久性架构应该做出正确的决定.它可能连接到中央SQL数据库,或者它可能使用文件系统,或者它可能使用NoSQL数据存储,或memcached,或其他任何东西. (这就是人们用微服务谈论eventual consistency的原因.)
您希望以这种方式实现,以真正捕获微服务的好处.
>您希望每个微服务都可以独立发送,这样您就不会被阻止.与集中式基础设施的更强耦合降低了微服务的独立性.
>持久性要求变化很大.如果您正在运行搜索微服务,则不需要典型SQL数据库的ACID语义.如果您正在付款,则需要ACID.如果您正在存储和处理图像,则可能只使用文件系统.等等.