Grpc

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Channel-stub-method调用

ClinetCallImpl:客户端调用类,主要是start()方法;

其中包含了CallOptions对象,设置相关参数;

GrpcUtil:包括了常量,可以反查相关参数功能;

NettyServerBuilder:服务端使用,配置相关参数;

ManagerChannelBuilder:客户端使用,实现类包括NettyChannalBuilder,可设置相关参数;

参数    说明
bossEventLoopGroup 如果没指定,默认为一个static共享的对象,即JVM内所有的NettyServer都使用同一个Group,默认线程池大小为1。
workerEventLoopGroup 如果没指定,默认为一个static共享的对象,线程池大小为coreSize * 2。这两个对象采用默认值并不会带来问题;通常情况下,即使你的application中有多个GRPC Server,默认值也一样能够带来收益。不合适的线程池大小,有可能会是性能受限。
channelType 默认为NioServerSocketChannel,通常我们采用默认值;当然你也可以开发自己的类。如果此值为NioServerSocketChannel,则开启keepalive,同时设定SO_BACKLOG为128;BACKLOG就是系统底层已经建立引入链接但是尚未被accept的Socket队列的大小,在链接密集型(特别是短连接)时,如果队列超过此值,新的创建链接请求将会被拒绝(有可能你在压力测试时,会遇到这样的问题)。
followControlWindow 流量控制的窗口大小,单位:字节,默认值为1M。
xConcurrentCallPerConnection 每个connection允许的最大并发请求数,默认值为Integer.MAX_VALUE;如果此连接上已经接受但尚未响应的streams个数达到此值,新的请求将会被拒绝。
maxMessageSize 每次调用允许发送的最大数据量,默认为100M。
maxHeaderListSize 每次调用允许发送的header的最大条数,GRPC中默认为8192。

转载于:https://my.oschina.net/courtzjl/blog/1859863

你可能感兴趣的:(Grpc)