【发布时间】:2018-05-13 15:03:42
【问题描述】:
我有两个 webapp,每个都有自己的后端微服务,每个微服务都有自己的数据库。对于微服务 1 数据库表中的任何更改,我想更改(创建/更新)微服务 2 数据库表中的条目。我该怎么做?
上下文:
Webapp 1: 供人力资源协调员安排面试的 UI。
微服务 1: 安排面试的后端服务。
微服务数据库 1: 存储与候选人面试相关的信息。
interviews: [ {
"interviewId": "1",
"candidateId": "abc",
"interviewers": [
{
"interviewer_name": "Thor",
"schedule": {
"startTime": "",
"endTime": "",
"roomNumber": 101
}
},
{
"interviewer_name": "Loki",
"schedule": {
"startTime": "",
"endTime": "",
"roomNumber": 101
}
}
]
} ]
Webapp 2: 供面试官协调面试问题的 UI。
微服务 2: 为面试官协调问题选择的后端服务。即每位面试官选择他/她将在面试中向候选人提出什么问题(这是为了确保不会有两名面试官最终向候选人提出相同的问题)。
微服务数据库 2: 架构
// QuestionBank : 包含问题的表格,面试官可以选择。
// Interviewers : 包含公司所有面试官的表格。
// InterviewToInterviewer :(与面试官的多对多映射)。一次面试可以有多位面试官,每个面试官可以参加多场面试。
// InterviewToInterviewerToQuestion :(interviewToInterviewers 与问题的多对多映射)。对于每次面试,面试官可以选择许多问题,并且问题库中的每个问题都可以是许多 interviewToInterviewer 条目的一部分。
当前工作流程:
一旦从 webapp1 安排面试:
- 会向所有面试官发送一封电子邮件。电子邮件包含指向 webapp 2 的链接,单击此链接将打开 webapp2,该链接为面试官提供了一个界面,供面试官选择他们计划在面试中提出的问题。
要求:
如果问题不是面试官选择的,那么我想给他们发送提醒。为此,我希望 webapp2 知道安排了面试。
我希望 webapp2 知道发生的任何阵容变化(在给定的面试中,面试官被更换或面试被取消等)。
我想到的解决方案:
一旦面试被安排/从 webapp1 更改,webapp1 将调用 webapp2(webapp2 为此公开一个 API)让 webapp2 知道创建了新的面试或更新了现有的面试。
对于 DB1 中的采访表中的任何新条目/更新,将向 DB2 启动一个 DB 触发器。我不确定这是否也可能。
在上述两种方法中,有人可以帮助我了解其中一种选择的优缺点。或者有一些其他的替代方法来实现这一点。
感谢这里的领导。
【问题讨论】:
标签: java sql-server microservices database-trigger