热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

grpc-java的ServerBuilder中执行程序的确切用法是什么?它只是执行处理程序方法吗?

如何解决《grpc-java的ServerBuilder中执行程序的确切用法是什么?它只是执行处理程序方法吗?》经验,为你挑选了1个好方法。

grpc-java在ServerBuilder其中使用了一个执行程序,如果没有由该builder.executor()方法定义,则默认情况下使用静态缓存线程池.这个遗嘱执行人的确切用途是什么?它只是执行处理程序方法还是执行"其他"操作?

另外,grpc如何定义网络工作者EventLoopGroup?具体来说,我想知道如何将工作线程分配给此工作组.是否有线程数的默认值,或者它是机器核心数的函数?另外,关于上述问题,这些网络工作者如何与遗嘱执行人合作?他们只处理I/O - 读取和写入通道吗?

编辑:Netty,默认创建(2*个核心数)工作线程.



1> Carl Mastran..:

Executor您提供的是实际执行的RPC的回调.这释放了EventLoop继续处理连接数据.当新消息从网络到达时,它将在事件循环中读取,然后在堆栈中向上传播到执行程序.执行程序接收消息并将它们传递给您ServerCall.Listener将实际处理数据的消息.

默认情况下,gRPC使用缓存的线程池,因此很容易上手.但是强烈建议您提供自己的执行者.原因是默认线程池在负载下表现不佳,在其余线程忙时创建新线程.

要设置事件循环组,请在NettyServerBuilder上调用workerEventLoopGroup方法.gRPC并不严格依赖于Netty(可能有其他服务器传输),因此必须使用Netty特定构建器.


是的,使用固定大小的线程池.像`Executors.newFixedThreadPool(16)`这样的东西
由于强烈建议不要使用默认值,因此gRPC是否针对不同情况推荐了执行程序?
您的ServiceImplBase应该是线程安全的。
推荐阅读
  • 微服务之总体架构篇
    一、单体架构存在的问题缺点:1、难以维护:当单体应用业务不断迭代后代码量非常臃肿,模整个项目非常复杂,每次更改代码都可能带来新的bug;2、部署项目麻烦:庞大之后项目部署效率 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • 缓存 分布式锁 Redis
    分布式锁现在Redis基本上没家公司都在使用,只是各自使用的场景不以,但Redis最出名的还是做为缓存服务器,提搞服务器的的吞吐量,下面我们来围绕这个作为缓存做一个总结今天的目标其 ... [详细]
  • 详解Netty Zero Copy机制
    NettyZeroCopy的巧妙设计让Netty从众多高性 ... [详细]
  • Java中线程池,你真的了解会用吗
    2019独角兽企业重金招聘Python工程师标准在《深入源码分析Java线程池的实现原理》这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理。在文中 ... [详细]
  • 列举几个Java程序员通用的、必须掌握的框架
    Java程序员历来就被认为是好职业,但并不是所有的Java程序员都能如愿获得好的回报,任何一个行业,都有低端饱和、高端紧缺的现象ÿ ... [详细]
  • 开发笔记:SpringBoot学习开发web应用
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了SpringBoot学习开发web应用相关的知识,希望对你有一定的参考价值。SpringBoot ... [详细]
author-avatar
锦瑟刻下两段缠绵
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有