V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
shenX
V2EX  ›  程序员

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

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

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

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

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