• 请不要在回答技术问题时复制粘贴 AI 生成的内容
shenX
V2EX  ›  程序员

单体应用中,如何将服务剥离业务?

  •  1
     
  •   shenX · Sep 3, 2021 · 2872 views
    This topic created in 1887 days ago, the information mentioned may be changed or developed.

    目前的项目是一个单体应用,由于用户基数不大,因此很多第三方服务都是直接由业务端直接接入。

    现在要接入内容审核的服务,考虑到不需要实时处理审核结果和减轻业务端的压力,想要将其抽离业务端,想请教各位有无比较好的实现方案?

    10 replies  •  2021-09-07 14:16:45 +08:00
    golangLover
    golangLover
    Sep 4, 2021
    1
    “第三方服务都是直接由业务端直接接入。"
    还是没看懂这句话,你意思是单体应用提供了 Api,然后让其他人直接连上去?
    shenX
    shenX
    OP
    Sep 4, 2021
    2
    @golangLover 就是以前的第三方服务是直接由单体应用接入。这次的内容审核服务由于不需要实时反馈结果给到用户,想要新增一个服务去处理这一块的逻辑
    shadowfish0
    shadowfish0
    Sep 6, 2021
    3
    不知道是不是你的意思,像我这里搞邮件发送,或者循环调用微信消息提醒接口,直接把相应的代码写函数计算里,然后程序用函数计算 SDK 调用下函数计算就行了
    EscYezi
    EscYezi
    Sep 6, 2021 via iPhone
    4
    新服务接入内容审核,老服务发 mq 触发新服务执行任务
    shenX
    shenX
    OP
    Sep 6, 2021
    5
    @shadowfish0 不是相同的场景。举个例子,用户发布了一个帖子,单体应用新增一条待审核状态的帖子记录即可,不用关心帖子什么时候通过审核。我想要新开一个服务专门去处理审核的流程
    shenX
    shenX
    OP
    Sep 6, 2021
    6
    @EscYezi 我也是这样想。想请教一下这种是叫什么模式吗?需要注意的点有哪些,想找一些相关资料参考。
    tangtj
    tangtj
    Sep 6, 2021
    7
    可以起个新的项目,用来监听原项目发布的事件。
    EscYezi
    EscYezi
    Sep 6, 2021 via iPhone
    8
    @shenX 根据个人的浅薄经验,主要是 mq 消息消费的问题(丢失 /重复消费 /消费失败)丢失问题可以靠中间件,重复消费可能要做幂等,消费失败怎么处理根据业务需求定。模式类似于发布订阅模型。
    siweipancc
    siweipancc
    Sep 6, 2021 via iPhone
    9
    单体需要做到发布订阅可以做 eventbus 的实现,也可以上 springboot publisher,不必上重武器(指 mq )。
    shenX
    shenX
    OP
    Sep 7, 2021
    10
    @EscYezi 了解,目前打算使用 redis 队列来实现,丢失 /消费失败等问题由服务自行处理
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3086 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 82ms · UTC 04:39 · PVG 12:39 · LAX 20:39 · JFK 23:39
    ♥ Do have faith in what you're doing.