https://dzone.com/articles/breaking-the-monolithic-database-in-your-microserv
当我想扩展一个服务(订单服务)时,如果订单的每个实例都有自己的数据库,那么当一些订单服务关闭时,我们就会有不完整的数据。
或者这些相同的服务在向上扩展时使用一个共享数据库?那么这意味着数据库必须有冗余服务器?
发布于 2019-06-16 11:00:14
那篇文章只说order服务不应该与其他服务共享数据库。
如果您希望(水平地)将order服务扩展到多个实例,这些实例仍然可以共享单个后备数据库(如果负载增加,您将需要垂直扩展)。这并不违反不在服务之间共享数据库的原则(因为所有内容仍然保留在order服务中)。
或者,您也可以对数据库进行分区/分片,以水平扩展整个数据库。
无论哪种方式,您的数据库都需要对整个服务可用才可用,所以如果您水平扩展它(即,您有多个节点),您将需要冗余,因为N个实例的实例故障风险比1个实例的风险更高(从好的方面来说,在分片设置中,如果您丢失了N个分片中的1个,则其他N-1个可能仍然可用,以便您可以继续为部分客户群提供服务--而单个节点垂直扩展的数据库在脱机时会降低所有内容)。
https://stackoverflow.com/questions/56615697
复制相似问题