可以根据资源使用情况拆分微服务吗?

时间:2021-03-30 12:06:27

标签: web-crawler microservices

微服务是否可以根据它们消耗的资源量进行拆分,从而允许独立于(简单的)休息服务扩展资源密集型服务?

给出我目前情况的一些背景。有两种休息服务和一种处理服务:

  • 游戏服务 - 游戏管理和价格来源(例如游戏商店产品页面)
  • 爬虫(策略)服务 - 基于给定源模式(例如匹配特定 uri)的策略管理
  • 爬虫处理器 - 资源繁重的爬虫服务,它使用由策略服务管理的策略从给定的商店页面爬取游戏价格。

Simplification of services

做出此选择是为了允许多个处理器实例对价格更新事件采取行动。到目前为止一切顺利。

爬虫处理器服务通过基于策略创建处理器来处理事件。该处理器使用爬虫实例(例如 microdataCrawler)和可选中间件列表(例如 ProxyMiddleware)。此实例的键(例如 crawler.microdata)和中间件(例如 proxy.basic)在给定的策略中定义。

然而,问题是可用的爬虫和中间件被定义为爬虫处理器中的类。这使得无法仅使用策略休息服务从前端定义策略。

  • 在这种情况下,处理器是否应该(甚至可以)成为独立服务?
  • 为策略服务提供有关允许的爬网程序/中间件的知识的最佳做法是什么。
    • 当启动处理器时会使用已知的中间件/爬虫触发事件并将其注册到策略服务中?

我想到的第一个解决方案是将处理器和策略服务合二为一,但这结合了处理器的资源繁重计算,并且会对试图避免的其余服务的性能产生负面影响。< /p>

0 个答案:

没有答案