5261
V2EX  ›  Rust

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

  •  
  •   5261 · Apr 17, 2025 · 2077 views
    This topic created in 431 days ago, the information mentioned may be changed or developed.

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

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

    3 replies    2025-06-13 12:08:04 +08:00
    roidinev
        1
    roidinev  
       Apr 17, 2025
    这是组件/service 的概念,你可以添加需要的 layers (实现了某个组件/serivce )进行组合( layer
    .layer),也可以把一个服务组装成一个 layer 。
    看你需要吧。
    5261
        2
    5261  
    OP
       Apr 17, 2025
    @roidinev 意思是 比如说 /user 可能需要 用户服务、订单服务、统计服务, /order 就只需要 订单服务 这样单独区别配置吧?
    none
        3
    none  
       Jun 13, 2025
    你可以定义一个单独的 Struct 来初始化并存放这些服务的实例,比如叫 ServiceFactory, 然后 layer 里只传入 ServiceFactory 这一个就行了,反正在内存里,每个服务都是单例的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1130 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 17:57 · PVG 01:57 · LAX 10:57 · JFK 13:57
    ♥ Do have faith in what you're doing.