muduo的rpc项目
文章平均质量分 74
@seven@
加油,未来可期
展开
-
基于muduo的rpc项目之异步日志模块
1.前言muduo也提供了一个日志模块,功能很强大,但是是同步日志,同步日志会增加RPC方法的时间,性能不好。所以,需要一个异步日志模块。这里实现的相对简单,朋友们可以参考一下kafka(日志信息中间件模块是异步的)2.设计思路框架日志写入到队列里面,不需要关心日志什么时候落盘。这样RPC方法时间就不需要加入了磁盘io的时间。我们现在需要去设计这样一个队列完成相应的日志存储,让其他线程进行落盘。3.队列设计队列是基于c++提供的 std::queue,这是一个模板类,内部重改写了pop和原创 2022-05-21 23:03:53 · 478 阅读 · 0 评论 -
基于muduo的RPC消费者的框架模块
1.前言前面章节,我们已经可以将本地方法,发布成一个网络上面的RPC方法,现在消费者可以去享受别人提供的服务。我们通过_stub类对象调用相应方法,传入相应参数,即可完成调用。怎么调用是框架的问题。下面就介绍怎么去消费这些服务。2.消费者的框架模块2.1介绍客户端这边调用,要继承生产的_stub类。然后我们需要自己继承重写RPCChannle类,_stub类其实就是一个代理类,本质上还是调用RPCChannle类里面的CallMethod方法。void MprpcChannel::Ca原创 2022-05-21 14:25:13 · 396 阅读 · 0 评论 -
基于muduo的RPC项目的服务端的网络模块
目录1.前言2.网络模块2.1网络通信的信息格式定义2.2网络模块的回调函数2.3开始调用RPC方法1.前言前面的框架模块已经搭建完毕,可以将本地方法,转成RPC方法了,现在通过网络模块将RPC方法发布到网络上,成为一个网络上的RPC方法。下面介绍一下网络模块2.网络模块2.1网络通信的信息格式定义信息类型定义:header_size(4个字节) + header_str + args_strheader_str:service_na...原创 2022-05-21 13:43:23 · 300 阅读 · 0 评论 -
基于muduo的rpc项目服务端的框架模块
目录1.前言2..RPC接口类转RPC方法3.初始化模块4.配置文件读取模块1.前言在前面的文章中,已经介绍了,protobuf模块和业务模块,这两个模块可以将本地方法,转变为一个RPC服务方法的接口类,框架模块的功能就是将该接口类转化为远程的RPC方法。框架除了这个功能还有框架初始化功能。2..RPC接口类转RPC方法RPC接口类转RPC方法,其实就是根据传进来的对象(接口类),获取相应的信息,然后进行存储,说白了,就是映射好,保存信息。具体如下:servi.原创 2022-05-21 13:33:20 · 773 阅读 · 0 评论 -
基于muduo的rpc项目开发之业务模块的业务提供者
1.介绍业务模块里面分业务提供者,业务消费者。不同角色的代码是不一样的,所以,下面将从这两个角色去介绍业务代码。2.业务提供者业务提供者类,我们定义为callee类,现在思考一个问题,一个本地业务方法怎么发布成RPC方法? 本地方法 | |------>>...原创 2022-05-17 22:57:01 · 168 阅读 · 0 评论 -
基于muduo的rpc项目前言
0.前言强烈建议看本专栏之前,先看看我一个专栏的集群服务器项目,这样,你会理解的更加深刻。本项目是以rpc框架 为主,业务为辅。1.技术栈要求1.1集群和分布式概念以及原理单机,集群,分布式,微服务服务器_@seven@的博客-CSDN博客1.2RPC远程过程调用原理以及实现RPC通信原理,RPC(Remote Procedure Call Protocol)远程过程调用协议。黄色部分:设计rpc方法参数的打包和解析,也就是数据的序列化和反序列化,使用Protobuf。原创 2022-05-17 16:10:58 · 498 阅读 · 0 评论 -
基于muduo的rpc项目开发之protobuf模块
1.何为 ProtoBuf我们先来看看官方文档给出的定义和描述:protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构原创 2022-05-17 15:53:40 · 530 阅读 · 0 评论