cloudwego / cloudwego/volo

volo-grpc server能支持配置自定义初始window size吗

Open
#646 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
2.6k
Forks
223
Avg merge
18m
Merged PRs (30d)
1

Description

Image

这是我在本地启动的一个volo-grpc server,端口50051,用brpc的c++client去调用,本地抓包分析来看:
1. server配置如下:
```rust
......
#[derive(Clone, Default)]
struct HelloSvc;

impl hello_pb::HelloService for HelloSvc {
async fn hello(
&self,
req: Request,
) -> Result, Status> {
let name: &str = req.get_ref().name.as_ref();
let preview: String = name.chars().take(10).collect();
println!(
"Received Hello request: name length={}, preview='{}'",
name.chars().count(),
preview
);
let ok = is_valid_name(name);
Ok(Response::new(hello_pb::HelloReply { ok }))
}
}

fn is_valid_name(name: &str) -> bool {
!name.trim().is_empty()
}

#[volo::main]
async fn main() -> Result<(), Box> {
let addr: SocketAddr = "[::]:50051".parse()?;
let addr = Address::from(addr);

Server::new()
.http2_adaptive_window(true)
.http2_init_connection_window_size(1024u32 * 1024)
.http2_init_stream_window_size(1024u32 * 1024)
.http2_max_frame_size(1024u32 * 1024)
.http2_max_send_buf_size(1024usize * 1024)

.add_service(ServiceBuilder::new(hello_pb::HelloServiceServer::new(HelloSvc)).build())
.run(addr)
.await?;

Ok(())
}

```
2. 建立连接后,server向client发送一个No=4的报文,上面的WindowSize是65536
看着和server配置的http2_init_connection_window_size和http2_init_stream_window_size并不一样,想咨询下是我的用法有问题,还是volo-rpc框架不支持配置

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.