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

151 天前
 5261

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

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

1513 次点击
所在节点    Rust
3 条回复
roidinev
151 天前
这是组件/service 的概念,你可以添加需要的 layers (实现了某个组件/serivce )进行组合( layer
.layer),也可以把一个服务组装成一个 layer 。
看你需要吧。
5261
151 天前
@roidinev 意思是 比如说 /user 可能需要 用户服务、订单服务、统计服务, /order 就只需要 订单服务 这样单独区别配置吧?
none
94 天前
你可以定义一个单独的 Struct 来初始化并存放这些服务的实例,比如叫 ServiceFactory, 然后 layer 里只传入 ServiceFactory 这一个就行了,反正在内存里,每个服务都是单例的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1126092

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX