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

分布式服务系统中,如何管理枚举类!

  •  
  •   cking · 2021-02-19 14:53:26 +08:00 · 1757 次点击
    这是一个创建于 1404 天前的主题,其中的信息可能已经有所发展或是发生改变。
    RT.我们系统分布式部署
    示例服务器:
    A-business-service: A 业务系统实现服务(业务实现方法)
    A-base-service: A 基层系统实现服务(链接 Mysql)
    B-business-service: B 业务系统实现服务(业务实现方法)
    B-base-service: B 基层系统实现服务(链接 Mysql)


    现在每个服务器都有各自服务中的代码枚举类.但是由于没有管理 很多 code 以及 msg 重复了 甚至在 A 中表达的是(1001, 错误信息 1) 在 B 中表达的就是(1001, 错误信息 2) 这样的话 就很容易引入错误的 code 显示不同的错误信息.
    12 条回复    2021-02-19 17:24:13 +08:00
    laimailai
        1
    laimailai  
       2021-02-19 15:04:02 +08:00
    同样问题 ;
    考虑用数据库 或 统一包管理了。
    看下有没有更好的方案
    zjbztianya
        2
    zjbztianya  
       2021-02-19 15:10:45 +08:00
    在每个服务传播错误的时候,做一次翻译,这样保证每个服务 + 错误枚举,应该是唯一的
    jjwjiang
        3
    jjwjiang  
       2021-02-19 15:18:06 +08:00
    我们做法是在每个服务里规定了前缀,比如服务 A 是 1001 打头,服务 B 是 1002 打头。

    如果用统一包管理那就失去了微服务的优势了…
    chendy
        4
    chendy  
       2021-02-19 15:18:25 +08:00
    1. 做个错误码管理系统,发号出去用
    2. 错误码用字符串,按规则拼(比如 系统名_模块名_错误编号)
    3. 其实错误处理这种东西吧…犯不上做这么重…
    dqzcwxb
        5
    dqzcwxb  
       2021-02-19 15:27:24 +08:00
    配置中心
    cking
        6
    cking  
    OP
       2021-02-19 16:21:51 +08:00
    @laimailai 准备用字典表维护
    cking
        7
    cking  
    OP
       2021-02-19 16:22:32 +08:00
    @chendy 我们主管就是说 很多重复了 所以 有想法把统一管理一下
    clf
        8
    clf  
       2021-02-19 16:24:12 +08:00
    划分号段吧,每个服务一个号段。包括数据 ID,也按服务进行划分号段。
    kingsmalltwo
        9
    kingsmalltwo  
       2021-02-19 17:04:57 +08:00
    统一入库字典码表+缓存
    uselessVisitor
        10
    uselessVisitor  
       2021-02-19 17:12:36 +08:00
    @cking 老哥数据库字典表怎么取出来用呢? List<Object>吗?那这样会有硬编码吧。。
    palmers
        11
    palmers  
       2021-02-19 17:16:57 +08:00
    其实 code 带上服务模块前缀就行了 不重 也可以一目了然 因为这个只是为了快速识别错误信息
    gamexg
        12
    gamexg  
       2021-02-19 17:24:13 +08:00
    我这边是按照号段划分的,不过已存在的服务处理起来可能麻烦些。
    也许改成字符串错误代码更方便。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1801 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 16:25 · PVG 00:25 · LAX 08:25 · JFK 11:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.