构建微服务架构我面临着同一微服务实例之间的数据共享问题.
我有微服务,它大量使用它的数据源-每个服务请求都会导致数据库请求(通常是插入).这项服务的使用率将非常高,我计划在负载均衡器后面隐藏多个实例.这里出现了一个问题:这些实例是否应该使用一个数据库(该数据库会成为瓶颈吗?)或多个(每个实例的数据源)有吗?
构建微服务架构我面临着同一微服务实例之间的数据共享问题.
我有微服务,它大量使用它的数据源-每个服务请求都会导致数据库请求(通常是插入).这项服务的使用率将非常高,我计划在负载均衡器后面隐藏多个实例.这里出现了一个问题:这些实例是否应该使用一个数据库(该数据库会成为瓶颈吗?)或多个(每个实例的数据源)有吗?
在我使用mSOA架构的经验中,我从未见过
多个(每个实例的数据源)
以供使用.即使您计划大量加载它,最常见的DB本质上也支持多线程访问.通常,数据库系统的瓶颈(或最慢部分)是磁盘.我们不得不多次扩展我们的集群(如果您在云中,成本相对较低,但可伸缩性也会成为一个问题,因为管理和执行扩展的DB系统需要更多的线程).请记住,某些RDBMS使用临时数据库(Tempdb),该实例上的所有数据库都使用该临时数据库进行排序、散列、临时变量等.可以使用多线程和拆分此tempdb文件来提高tempdb的吞吐量,从而提高整体服务器性能.
因为我现在使用Orchard,所以我不得不说,在某些情况下,当您在一个实例上的操作不完全(和及时)同步时.这会导致即使在正确的身份验证之后,对资源的访问也会被拒绝(恰好在注册事件之后).
我计划在负载均衡器后面隐藏多个实例
这是适合您的App服务器的设计,因此使用DB集群也应该是合适的.以完整的答案为目标-您可以考虑DWH个,如果您有很多服务,并且您希望能够从他们所有的数据库中进行一些数据挖掘和分析.