google-cloud-platform - 微服务之间如何同步数据?
问题描述
我最近开始了一项工作,将我们的服务部署在无服务器 gcp 云上。
我们有多个项目,这些项目使用 pub sub 消息传递与其他人共享数据,例如,一个项目创建了一家公司,而其他项目监听该公司的创建以更新各自的数据库。
我在项目 A 中有一个 CRUD,它通知项目 B 一个实体的创建。稍后,B 接收到该对象的新状态,并希望将它们通知回 A。
我见过两种处理此案的方法:
- 项目 B 的发布者通过 POST 将项目 A 中的 crud 定位到端点。
- 在 A 上创建一个新的 worker 云函数,将消息数据保存在 db 上。
我们目前使用第二种方法,但我有疑问:
我认为最好的解决方案是调用 CRUD,因为 CRUD 知道该状态意味着什么,如何清除缓存,记录什么,验证,而且,如果数据库结构发生变化,我们不会需要更改两个源代码(可以通过将公共代码移动到库来解决,但会增加额外的复杂性)
您目前如何处理不同项目/服务之间的类似数据同步任务?
解决方案
推荐阅读
- javascript - 如何将 axios.get 多个响应结果包装到一个数组中?
- javascript - 如果元素不存在,为什么 instanceof HTMLElement 返回 false?
- c# - 单实例 [Windows 必须在处理单实例时重新打开......]
- python - 在上面的代码中判断一个数是否为素数
- c# - 如何检查/查找变换下存在的游戏对象是隐藏的还是活动的?
- python - Python 'object() 没有参数' 错误
- postgresql - 如何在 postgresql 中使用 jsonb_set 更新一个空的 jsonb 列?
- java - 我不明白为什么我是假的,而不是真的,请查看代码并帮助我
- node.js - 需要在 docker node:alpine image 中使用 wkhtmltopdf
- c++ - 在线程之间共享内存会使它们变慢吗?