美文网首页
2019-07-19 C++RPC框架理解

2019-07-19 C++RPC框架理解

作者: hangzhou吴彦祖 | 来源:发表于2019-07-19 11:07 被阅读0次

框架总体结构:

通过配置组件到集成框架,快速组装出产品。

加载流程

     框架按照集成配置文件加载组件。通过名称找到组件描述表和可执行文件,通过多进程方式运行组件。时序图

   客户端集成框架在启动和加载组件之后,会与每一个组件建立一个双工模式的有名管道。框架管理模块会将组件ID、进程ID、管道ID组装成一张组件进程映射表。用于通信过程中的组件寻址。总线或者其他模块需要寻址时可通过进程映射表找到对应的组件通信管道。

消息通信

             请求模式

时序图如下:  以组件B调用组件A的发布接口为例子:

     订阅发布模式

 

bool lpcInit()   初始化组件ID,

链接服务器ServerFrameWork,

设置LPC回调。 初始化http客户端及通信加密示例。

其他模块收到 common层定义的url 及方法。在回调里面接收到 LPCCallBackData

获取回调数据中的Url,Method,Protocol

IVMS_LOG_INFO("Recevice Callback Data.Url:[%s],Method:[%s],Protocol:[%s]", strUrl.c_str(), strMethod.c_str(), strProtocol.c_str());

if (!strUrl.empty()) // 内外部协议

{

// 创建内外部协议处理任务

auto pTask = new CHttpTask(strUrl, strMethod, struData);

if (pTask != nullptr)

{

  if (!comm_method::CThreadPoolForNetTask::Instance().PostTask(pTask))

 {

     IVMS_LOG_ERROR("Failed To Post Net Task.Url:[%s],Method:[%s].", strUrl.c_str(), strMethod.c_str());

 }

}

}

else

{

if (protocol::kWebSocket == strProtocol) // websocket通知

{auto pTask = new CWebsocketTask(struData);}

if (pTask != nullptr) { comm_method::CThreadPoolForInnerTask::Instance().PostTask(pTask); }

}

else {auto pTask = new CLpcTask(struData);}

/** @class CThreadPoolForNetTask* @brief 执行网络任务的线程池*/

class CThreadPoolForNetTask : public CThreadPoolDelegateModel, public Base::CSingleton<CThreadPoolForNetTask>

{

friend class Base::CSingleton<CThreadPoolForNetTask>

 CThreadPoolForNetTask() {}

public: ~CThreadPoolForNetTask() {}

};

相关文章

  • 2019-07-19 C++RPC框架理解

    框架总体结构: 通过配置组件到集成框架,快速组装出产品。 加载流程: 框架按照集成配置文件加载组件。通过名称找到...

  • 2019-07-19

    2019-07-19 2019-07-19 2019年7月19日 农历六月十七 星期五 天气:晴转阵雨 1.【...

  • Spring常见面试题

    1. 你对Spring框架的理解(特点)? Spring框架有哪些模块 ? 问题:你对Spring框架的理解(特点...

  • MVC框架理解

    我们先来看看什么是MVC?全名是Model View Controller,是模型(model)-视图(view)...

  • 理解Binder框架

    Binder是Android系统进程间通信(IPC)最重要的方式。要想了解Android的系统原理,必须要先对Bi...

  • MVVM框架理解

    了解这个模型之前就先来看看 MVC 框架 MVC将前端页面划分为View(视图)、Controller(控制器)、...

  • Web测试

    title: Web测试category: Webtag:date: 2019-07-19 缘起 之前组里出的专题...

  • Lan的ScalersTalk第四轮新概念朗读持续力训练Day

    练习材料: [Day 1757 2019-07-19] Lesson 23-1 Bird flight No tw...

  • 2019-07-21

    2019-07-19 毛雅亭 字数 536 · 阅读 7 2019-06-02 18:39 ...

  • Hexo博客日常操作

    title: Hexo博客日常操作总结date: 2019-07-19 10:37:44categories:ta...

网友评论

      本文标题:2019-07-19 C++RPC框架理解

      本文链接:https://www.haomeiwen.com/subject/lvljlctx.html