如何使用Message Queue设置数据同步微服务

时间:2018-04-03 23:12:36

标签: synchronization message-queue microservices

我目前正在构建一个系统(类似SaaS),它运行着微服务和更大的服务(由于各种约束),将由多个客户端(例如多个帐户)使用,核心系统的一部分需要数据来自其他系统(例如客户端系统)的核心系统数据库。我将通过拥有同步微服务来管理这一点,该服务在一定时间内将调用其他系统API并处理数据,将其应用到核心数据库中并将状态中的任何特定更改标记到其他服务的消息队列中然后处理。

我的核心问题是,如果我有多个客户端具有多个同步作业和多个同步服务(例如2个以上同步服务应用程序),我将如何管理作业,以便两个同步不会立即运行并且服务所有这些都是在混合客户系统等上运行。总的来说,目标是能够轻松扩展。

到目前为止,我提出的选项是:

  1. 使用基本的cron作业并将同步服务设置为单个客户端(无法轻松扩展)
  2. 使用其他服务将项目放入MQ以使同步服务获取(其他服务无法扩展)
  3. 使用Cloud Watch等AWS系统推入MQ,并从队列中使用多个同步服务
  4. 之前有人提出过这个问题吗?什么是好的选择或推荐?

    技术相关的答案很好,但服务是基于Node.js并使用mySQL数据库构建的。

1 个答案:

答案 0 :(得分:0)

其中一种方法是计时器作业将数据放入消息队列,并且队列中有多个侦听器(根据某些ID进行分区),并通过增加侦听器进行扩展。

大多数情况下这应该足够了。