(原创)C/C语言, 平台是debian10, grpc版本:grpc-c/1.25.0-dev grpc-c/8.0.0, 使用的例子是自带的例子GreeterClient

grpc Unary模式下客户端创建insecure channel的主要流程

graph TD;
001(main #greeter_client.cc:81 入口调用grpc::CreateChannel)-->002(grpc::CreateChannel #create_channel.h:30 调用::grpc_impl::CreateChannelImpl)

002-->003(grpc_impl::CreateChannelImpl #create_channel.cc:33 调用CreateCustomChannelImpl)

003-->004(grpc_impl::CreateCustomChannelImpl #create_channel.cc:50 初始化GrpcLibraryCodegen并最终调用grpc_init初始化核心模块, 再调用CreateChannelImpl)

004-->005(grpc_impl::InsecureChannelCredentialsImpl::CreateChannelImpl #insecure_credentials.cc:37 调用CreateChannelWithInterceptors)

005-->006(grpc_impl::InsecureChannelCredentialsImpl::CreateChannelWithInterceptors insecure_credentials.cc:50 调用grpc_insecure_channel_create)

006-->007(grpc_insecure_channel_create #channel_create.cc:104 增加了grpc.client_channel_factory参数并调用CreateChannel)

007-->008(grpc_core::CreateChannel #channel_create.cc:67 增加了grpc.server_uri参数并调用grpc_channel_create)

008-->009(grpc_channel_create #channel.cc:286 调用grpc_init, 此处不会执行初始化,因为前面已经初始化了,创建并设置grpc_channel_stack_builder参数,创建ChannelzNode,最后调用 grpc_channel_create_with_builder)

009-->010(grpc_channel_create_with_builder #channel.cc:79 调用grpc_channel_stack_builder_finish完成channel创建并设置channel的变量)

010-->011(grpc_channel_stack_builder_finish #channel_stack_builder.cc:297 创建并初始化channel对应的grpc_channel_stack)

grpc Unary模式下客户端创建insecure channel的主要流程的更多相关文章

  1. Unary模式下客户端创建 default-executor 和 resolver-executor 线程和从启动到执行grpc_connector_connect的主要流程

    (原创)C/C/1.25.0-dev grpc-c/8.0.0, 使用的例子是自带的例子GreeterClient 创建 default-executor 和 resolver-executor 线程 ...

  2. Unary模式下客户端从开始连接到发送接收数据的主要流程

    (原创)C/C/1.25.0-dev grpc-c/8.0.0, 使用的例子是自带的例子GreeterClient grpc Unary模式下客户端从开始连接到发送数据的主要流程 graph TD; ...

  3. 烂泥:openvpn tun模式下客户端与内网机器通信

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 前两篇文章我们介绍了有关openvpn的搭建与配置文件的讲解,这篇文章我们再聊介绍下,在tun模式下openvpn客户端如何与内网机器通信的问题. 一.实 ...

  4. Azure ARM (11) ARM模式下,创建虚拟机并配置负载均衡器

    <Windows Azure Platform 系列文章目录> 本文内容比较多,请大家仔细阅读,谢谢! 在前几章中,我们做了准备工作: 1.创建ARM Resouce Group,叫Lei ...

  5. 【案例分享】使用ActiveReports报表工具,在.NET MVC模式下动态创建报表

    提起报表,大家会觉得即熟悉又陌生,好像常常在工作中使用,又似乎无法准确描述报表.今天我们来一起了解一下什么是报表,报表的结构.构成元素,以及为什么需要报表. 什么是报表 简单的说:报表就是通过表格.图 ...

  6. Azure ARM (9) 创建ARM模式下的虚拟机网络

    <Windows Azure Platform 系列文章目录> 笔者在之前几章内容中,创建了ARM Resource Group,然后在这个ARM Resource Group下创建Azu ...

  7. ARM模式下创建Express Route

    在Azure的ARM模式下,创建Express Route的命令和ASM模式下是有一些区别的. 本文将介绍在ARM模式下,如果创建Express Route的Circuit. 1. 查看支持的Serv ...

  8. CODING DevOps 系列第三课:云计算、云原生模式下 DevOps 的建设

    本文首先会和大家分享当前整个应用生命周期的演变历程,然后讲解云计算模式下 DevOps 建设包含的过程.流程规范和标准,最后讲解云原生时代到来会带来哪些改变,以及标准化的建设会有哪些改变和突破. 应用 ...

  9. gRPC(2):客户端创建和调用原理

    1. gRPC 客户端创建流程 1.1 背景 gRPC 是在 HTTP/2 之上实现的 RPC 框架,HTTP/2 是第 7 层(应用层)协议,它运行在 TCP(第 4 层 - 传输层)协议之上,相比 ...

随机推荐

  1. K8s的存储卷使用总结

    K8s的存储卷: 它有四种存储卷: 1. emptyDir: 空目录,这种存储卷会随着Pod的删除而被清空,它一般作为缓存目录使用,或临时目录, 当做缓存目录时,通常会将一块内存空间映射到该目录上,让 ...

  2. uniapp - 点赞动画插件

    更新时间: 2019/8/31 - 点击下载demo 点赞动画插件配合animate.css更好用! 该组件参考于:https://github.com/OYsun/VueStar/tree/mast ...

  3. js获取form表单所有数据

    代码如下: <script type="text/javascript"> // 获取指定form中的所有的<input><select>对象 ...

  4. DB2数据库基础

    一.DB2数据库安装教程 DB2安装教程:https://jingyan.baidu.com/article/e75057f2f59ef9ebc91a8905.html 二.DB2常用命令 1. 打开 ...

  5. Gradle 教程: 教你配置全局国内仓库,解决新建项目卡顿,下载构建慢等问题

    想必各位从Maven 转过来的大佬们,对于maven中配置国内仓库的方法还记忆深刻.通过/用户目录下/.m2/settings.xml 局部配置或者修改全局配置.不过没有接触过maven 也不要紧,可 ...

  6. VS2015 创建C++动态库及使用

    转载:https://blog.csdn.net/w_x_myself/article/details/82252646 1.dll的特点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代 ...

  7. android 桌面图标添加数字角标

    是否支持角标并不与手机厂商有关,而是你当前使用的launcher开发厂商有关. 方法实现: import android.app.Application; import android.app.Not ...

  8. win10系统许可证即将过期的解决方法

    相信很多朋友在使用win10系统过程中,都遇到过系统提示windows许可证即将过期的问题,win10系统许可证即将过期怎么办?我们只需要重新激活即可.以下方法可以参考,不足之处多多指正!   工具/ ...

  9. 使用 jpype 库实现 Python 调用 java 的 jar 包中的功能

    一.what's the JPype JPype 是一个能够让 python 代码方便地调用 Java 代码的工具.在某些时候 java 的能力更强,我们可以用 java 写一个模块的功能然后用 Py ...

  10. python基础】——python添加模块搜索路径和包的导入

    方法一:函数添加1 import sys2 查看sys.path3 添加sys.path.append("c:\\") 方法二:修改环境变量w用户可以修改系统环境变量PYTHONP ...