首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免微服务中的瓶颈

避免微服务中的瓶颈
EN

Stack Overflow用户
提问于 2017-02-28 00:51:28
回答 1查看 1.4K关注 0票数 5

我将为我的Datawarehouse应用程序应用Microservices。有4项主要的微型服务在应用中:

1)数据服务:将外部数据源导入/导出到DWH,并从DWH查询数据。

2)分析服务:用于用户界面上的图表可视化

3)机器学习:推荐系统

4)报告:用于生成报告

下图如下:

每个服务都有自己的DB,它们通过TCP和Thift序列化直接通信。这里的问题是数据服务承受着来自其他服务的高负载,并且可能成为应用程序的SPOF。DWH中的数据也很大(可能有上百兆的记录)。在这种情况下如何避免数据服务的瓶颈?或者如何定义一个有适当限制的上下文以避免瓶颈?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-28 13:56:25

你可能会想

  • 基于一定的业务逻辑,将Data Service分解为少量的微服务;
  • 修改Data Service (如果需要)以支持多个服务实例。然后使用负载均衡器在这些实例之间拆分请求。

负载均衡器是一种作为反向代理并在多个服务器上分配网络或应用程序流量的设备。负载平衡器用于提高应用程序的容量(并发用户)和可靠性。

关于“一个数据库、多个服务”:

每个微服务都需要有自己的数据存储,否则,就没有分解。如果我们讨论的是关系数据库,那么可以使用以下模式之一来实现这一点:

  • 每个服务的私有表-每个服务都拥有一组只能由该服务访问的表
  • 模式perService -每个服务都有一个对该服务私有的数据库模式
  • 每个服务的数据库-每个服务都有自己的数据库。

如果使用与Data Warehouse数据库和Data Service分开的表的服务只提供访问层到数据库,而不提供任何附加的处理逻辑,则可以删除Data Service并将数据访问逻辑移动到相应的服务。但是,另一方面,现在您只有一个地方(Data Service),它知道如何使用Data Warehouse访问和操作,这就是微服务的意义所在。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42498492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档