gRPC学习记录(六)客户端连接池

  对于客户端来说建立一个channel是昂贵的,因为创建channel需要连接,但是建立一个stub是很简单的,就像创建一个普通对象,因此Channel就需要复用,也就是说需要实现一个连接池应用.本文使用commons-pool2来实现连接池应用. 该案例可以当成连接池模板案例.

  org.apache.commons

  commons-pool2

  2.4.2

  写法的封装类似我的另一篇博文: Redis学习记录(二)–使用Jedis连接,模仿SpringJdbcTemplate模板类写法.

  首先定义一个回调接口.

  public interface WorkCallBack{

  void callback(S s);

  }

  再者定义一个产生连接池的工厂,需要继承自BasePooledObjectFactory,其用处是产生连接池中需要的客户端.

  public class HelloWorldFactory extends BasePooledObjectFactory{

  private String host = "127.0.0.1";

  private int port = 50051;