V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
a1lenyang
V2EX  ›  Java

微服务如何统一返回格式

  •  
  •   a1lenyang · 2022-04-22 11:10:43 +08:00 · 2487 次点击
    这是一个创建于 735 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在做毕业设计,关于微服务也是自己在摸索当中: 微服务一般是每个服务自己处理返回一个全局统一的格式,还是统一由网关处理返回一个统一的格式好呢?以下哪个方式比较合适? 1 、微服务直接对外的接口返回统一格式,RPC 调用的则直接返回原始数据。 2 、微服务直接对外接口和 RPC 接口都返回原始数据,由网关处理返回统一格式

    10 条回复    2022-04-23 09:36:58 +08:00
    codefever
        1
    codefever  
       2022-04-22 11:14:44 +08:00   ❤️ 1
    建议走网关,这样将来维护也方便
    chendy
        2
    chendy  
       2022-04-22 11:18:54 +08:00
    统一格式,网关只做转发和认证
    转格式啥的……当 ESB 用么……
    fkdog
        3
    fkdog  
       2022-04-22 11:25:42 +08:00
    @chendy 网关能干的东西多了,请求合并、协议转换 /适配、数据格式转换都是网关力所能及的范围。
    ZCPgyer
        4
    ZCPgyer  
       2022-04-22 11:28:24 +08:00
    走网关试试?
    luckyrayyy
        5
    luckyrayyy  
       2022-04-22 11:49:02 +08:00
    微服务不应该有直接对外的接口啊
    libook
        6
    libook  
       2022-04-22 11:50:40 +08:00
    软件架构上的事情,抛开场景谈好不好,不太严谨,你最好看看不同的方案在什么场景下合适,在什么场景下不合适。

    服务是否要返回统一格式和用不用网关不矛盾。
    多数情况下微服务在一些方面做到统一,会比较方便管理,尤其是团队协作的时候。
    微服务的域太多的话,前端和运维方面处理可能会比较麻烦,所以可以使用网关把多个微服务的接口整合成一套。
    多个前端产品对应同一套后端微服务池的时候,后端为每种前端产品做定制会使得服务变复杂,那么可以分出一个 BFF 层让每个产品的前端开发自己写一个后端服务,把微服务接口封装成适合当前产品的接口,并融入当前产品的一些业务逻辑。

    微服务在一些场景下可以降低开发成本、提升性能,但同时又引入了其他问题,具体可以看看微服务治理相关的概念。
    Kilerd
        7
    Kilerd  
       2022-04-22 13:22:04 +08:00
    service mesh ,可以用 sidecar 模式,让 sidecar 帮忙
    EastLord
        8
    EastLord  
       2022-04-22 13:23:49 +08:00
    要不参考一下 jhipster 生成的微服务
    wolfie
        9
    wolfie  
       2022-04-22 18:30:45 +08:00
    统一规范的东西,为什么要网关做。
    Akiya
        10
    Akiya  
       2022-04-23 09:36:58 +08:00 via iPhone
    毕业设计就一个人做完的的东西真有必要上微服务吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3528 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:48 · PVG 12:48 · LAX 21:48 · JFK 00:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.