如果 web 项目用到 gRpc 的话,通过 protoc 创建的这些服务,只能通过 layer 贯穿到整个服务中吗??
那正常的一个项目假如有几十上百个服务的话,那不是这个.layer(Extension(Arc::new(model::AppState::new(cate, topic, tera)))); 会很臃肿,因为要把这几十上百个服务都累加进去?
1
roidinev 83 天前
这是组件/service 的概念,你可以添加需要的 layers (实现了某个组件/serivce )进行组合( layer
.layer),也可以把一个服务组装成一个 layer 。 看你需要吧。 |
3
none 26 天前
你可以定义一个单独的 Struct 来初始化并存放这些服务的实例,比如叫 ServiceFactory, 然后 layer 里只传入 ServiceFactory 这一个就行了,反正在内存里,每个服务都是单例的
|