让我们说我们有5个微服务(μS),每个微服务需要一个带有几个表的数据库。这些服务中的每一个都需要能够扩展,包括数据库查询。为此,我们有一些我知道的选择:
1。 1-微秒; 1个实例; 1个数据库实例
不要水平缩放,只能垂直缩放。
2。 1-微秒; N个实例; 1个数据库实例
服务的每个实例都可以读取和写入同一数据库。如果服务处理是瓶颈,则简单的扩展方法。
3。 1-微秒; N个实例; HA DB群集
服务的每个实例都可以读取和写入相同的HA数据库。如果数据库的读/写也是瓶颈,那么扩展的好方法。更高的运营成本。
4。 N-微秒; N个实例; HA DB群集
每个服务的每个实例都可以读取和写入相同的HA数据库集群。每个服务在HA DB群集中使用其自己的数据库。
5。其他
还有其他方法可以在需要它的服务旁边扩展数据库吗?
对于每种解决方案,都需要权衡取舍,无论是读取还是写入性能,操作成本等,但是对于扩展数据库建议的解决方案是什么:
我的观点是,如果服务水平高,则3或4是解决方案,而其余4是解决方案。