V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
颜值和功能齐聚的跨平台SSH工具
Xterminal 是一款强大的开发工具,不止是 SSH 与 Terminal,还集成了 Note、拥有快捷动作、命令提示等特性
Promoted by Moyyyyyyyyyyye
5261
V2EX  ›  Rust

关于 rust axum 中使用 gprc 的一个疑惑

  •  
  •   5261 · 86 天前 · 1191 次点击
    这是一个创建于 86 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果 web 项目用到 gRpc 的话,通过 protoc 创建的这些服务,只能通过 layer 贯穿到整个服务中吗??

    那正常的一个项目假如有几十上百个服务的话,那不是这个.layer(Extension(Arc::new(model::AppState::new(cate, topic, tera)))); 会很臃肿,因为要把这几十上百个服务都累加进去?

    3 条回复    2025-06-13 12:08:04 +08:00
    roidinev
        1
    roidinev  
       86 天前
    这是组件/service 的概念,你可以添加需要的 layers (实现了某个组件/serivce )进行组合( layer
    .layer),也可以把一个服务组装成一个 layer 。
    看你需要吧。
    5261
        2
    5261  
    OP
       86 天前
    @roidinev 意思是 比如说 /user 可能需要 用户服务、订单服务、统计服务, /order 就只需要 订单服务 这样单独区别配置吧?
    none
        3
    none  
       29 天前
    你可以定义一个单独的 Struct 来初始化并存放这些服务的实例,比如叫 ServiceFactory, 然后 layer 里只传入 ServiceFactory 这一个就行了,反正在内存里,每个服务都是单例的
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2553 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:58 · PVG 22:58 · LAX 07:58 · JFK 10:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.