V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
MeloForsaken
V2EX  ›  程序员

请教一个多人开发项目的设计问题

  •  
  •   MeloForsaken · 2020-12-23 15:08:34 +08:00 · 1640 次点击
    这是一个创建于 1458 天前的主题,其中的信息可能已经有所发展或是发生改变。

    两三个人对项目进行开发(每个人负责几个模块,并且单独部署服务),有以下几个问题:

    1.有必要将接口的鉴权、用户认证抽成一个公共的服务,或者说有没有更好的方法?

    2.有必要上网关、服务注册中心、监控等微服务的组件吗?

    3.如果让开发人员只关注业务,那需要哪些基础设施?是不是必须要上微服务?

    10 条回复    2020-12-23 16:53:24 +08:00
    wizzer
        1
    wizzer  
       2020-12-23 15:20:14 +08:00
    简单、快捷、性能也不差,为什么不用 https://nutzwk.wizzer.cn

    微服务单应用项目,可以 jar 部署,也可 war 部署。
    securityCoding
        2
    securityCoding  
       2020-12-23 16:10:23 +08:00
    1. 有必要 . 接口鉴权,账户认证必须解耦出来
    2. 没必要 ,先按模块分
    3. ci
    MeloForsaken
        3
    MeloForsaken  
    OP
       2020-12-23 16:16:32 +08:00
    @securityCoding 不上网关的话怎么转发请求到鉴权认证服务,认证通过后又怎么转发到业务的服务上?
    rapperx2
        4
    rapperx2  
       2020-12-23 16:19:24 +08:00
    看项目流量来啊,小流量上微服务有什么用,加大成本。不过也要看业务需求来
    micean
        5
    micean  
       2020-12-23 16:21:09 +08:00
    两三个人的项目做成单体就行了,上什么微服务
    iceneet
        6
    iceneet  
       2020-12-23 16:26:26 +08:00
    不是所有项目的都要上微服务的 项目小的话 微服务带来的问题可能会更多
    shakeyo
        7
    shakeyo  
       2020-12-23 16:31:15 +08:00
    单体的问题在于无法复用,特别是在某些数据和代码都需要公用的情况下
    我现在的做法是提取出需要共享的服务,然后由单体应用进行 rpc 调用
    MeloForsaken
        8
    MeloForsaken  
    OP
       2020-12-23 16:42:41 +08:00
    @micean 你的意思是代码合并成一个服务打包部署?
    chendy
        9
    chendy  
       2020-12-23 16:49:24 +08:00
    项目多大?不大的话直接分模块写一个项目里完事了
    securityCoding
        10
    securityCoding  
       2020-12-23 16:53:24 +08:00   ❤️ 1
    @MeloForsaken 解耦方式不一定非要做成跨进程 , 规模不大的时候做到模块解耦就够了,比如统一的拦截器 /过滤器,给业务层提供统一获取登录态上下文 api ,结合缓存来做性能是没有啥问题的. 业务层对鉴权和登录态校验是没有感知的.同个进程内也就不存在转发请求的概念了. 俗称客户端模式

    要上业务层网关,其实差别也不是很大 ,无非是将鉴权的代码功独立成服务,网关层面做前置认证再自动帮你做转发和传递上下文 .

    技术方案都是慢慢演进的,没有完美的方案 . 结合业务场景来分析业务 ,选个最简单的方案来做就好.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3205 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:40 · PVG 18:40 · LAX 02:40 · JFK 05:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.