传统 TCP 连接池的目的是用来解决并发的,而现在 HTTP2 支持多路复用,单个链接就能支持并发了,而且还不会阻塞。
那么基于 HTTP2 的话,还需要考虑实现连接池吗?
如果考虑利用 HTTP2 链接发送流式数据,当其中一个请求的数据量较大时,会影响其他请求的延时吧?
如果要实现连接池,那么连接的负载均衡采用什么策略比较好呢?
1
Infernalzero 2019-03-14 16:50:03 +08:00
这得看你怎么用了,用在什么场景下
官方是推荐用单连接模式,这种情况下有没连接池都一样 但是单连接有个问题,比如客户端是 netty,单连接的情况下无法最大化利用 CPU,编码解码还是只有一个线程在处理。 如果追求极端性能,那此时维护 CPU 核数个连接就更高效了 |
2
hilbertz 2019-03-14 16:57:46 +08:00
http2 只是为了解决外网建立连接慢的问题,特别是 tls 连接,虽然能提高吞吐率,但延迟会增高,对于内网而言,延迟增高会很明显,所以有低延迟需求的内部服务是不会去用 grpc 这种基于 http2 的 rpc 的,所以 http2 一般也只用在边缘服务器
|