假设我有一个从redis和cassandra更新或读取数据的微服务。现在假设我放大,有3个完全相同的微服务示例。我是否需要为redis和cassandra分别创建3个示例,这样每个microservice示例都有自己的redis和cassandra示例?或者因为redis和cassandra都是基于集群的分布式数据库,所以我不需要这些数据库的3个示例,而是在3个微服务示例之间共享同一个集群?如果mysql也被微服务使用,我需要3个mysql示例吗?
atmip9wb1#
您可以使用microservices体系结构,将一个服务扩展到3个示例,但只使用一个数据库示例(redis/mysql/…),也可以将一组数据库连接在一起(不止一个redis/mysql示例)。其思想是不限制单个副本/示例与数据库的单个副本/示例通信,这不是扩展体系结构的原因,即:不将数据库示例分配给正在运行的服务的示例。它是这样工作的服务负载平衡器(将流量路由到单个示例)--->示例群-->db负载平衡器-->将流量路由到db群集中的主节点(或使用除主从或主-主或一致哈希以外的任何设置)。热释光;dr:不要为每个服务副本分配一个数据库副本,以后您可能需要将服务扩展到10个副本,但数据库集群只有3个节点。
1条答案
按热度按时间atmip9wb1#
您可以使用microservices体系结构,将一个服务扩展到3个示例,但只使用一个数据库示例(redis/mysql/…),也可以将一组数据库连接在一起(不止一个redis/mysql示例)。
其思想是不限制单个副本/示例与数据库的单个副本/示例通信,这不是扩展体系结构的原因,即:不将数据库示例分配给正在运行的服务的示例。它是这样工作的
服务负载平衡器(将流量路由到单个示例)--->示例群-->db负载平衡器-->将流量路由到db群集中的主节点(或使用除主从或主-主或一致哈希以外的任何设置)。
热释光;dr:不要为每个服务副本分配一个数据库副本,以后您可能需要将服务扩展到10个副本,但数据库集群只有3个节点。