从零开始实现RPC框架---------项目介绍及环境准备

news/2024/10/4 5:19:19 标签: rpc, 网络协议, 网络, c++, 学习

一,介绍

RPC(Remote Procedure Call)远程过程调⽤,是⼀种通过⽹络从远程计算机上请求服务,⽽不需要 了解底层⽹络通信细节。RPC可以使⽤多种⽹络协议进⾏通信, 如HTTP、TCP、UDP等, 并且在 TCP/IP⽹络四层模型中跨越了传输层和应⽤层。简⾔之RPC就是像调⽤本地⽅法⼀样调⽤远程⽅法。 过程可以理解为业务处理、计算任务,更直⽩的说,就是程序/⽅法/函数等,就是像调⽤本地⽅法⼀样 调⽤远程⽅法。

 二,该项目的基本模块

我们的项⽬是基于C++、JsonCpp、muduo⽹络库实现⼀个简单、易⽤的RPC通信框架,即使是不懂 ⽹络的开发者也可以很快速的上⼿,它实现了同步调⽤、异步callback调⽤、异步futrue调⽤、服务注 册/发现,服务上线/下线以及发布订阅等功能设计。虽然没有实现一个完整的RPC框架,但是这个项目仍然值得我们学习

三,项目环境准备

该项目在ubuntu22.04环境下实现,在开始项目的学习时首先要搞定的就是项目环境的搭建。下面我们就来安装下该项目要使用到的工具。

//安装wget
sudo apt install wget
//安装lrzsz工具
sudo apt-get install lrzsz
//安装gcc/g++编译器
sudo apt-get install gcc g++
//安装项目构建工具make
sudo apt-get install make
//安装gdb调试工具
sudo apt-get install git
//安装cmake工具
sudo apt-get install cmake
//安装git
apt install git
//安装jsoncpp库
sudo apt-get install libjsoncpp-dev
//安装muduo库
git clone https://github.com/chenshuo/muduo.git
//安装依赖环境
sudo apt-get install libz-dev libboost-all-dev

 因为muduo库是在github上面下载下来的,所以需要解压并编译。指令如下:

unzip muduo-master.zip

./build.sh

./build.sh install

当执行玩上面的安装muduo库的文件后便会在以下路径下看到muduo库的存在

四,结语

按照上面的步骤搭建好项目环境后,便可以开始做项目了。 

 

 


http://www.niftyadmin.cn/n/5689486.html

相关文章

Python Web 与数据隐私保护

Python Web 与数据隐私保护 目录 📜 数据隐私与合规要求🔒 用户数据保护策略🕵️‍♂️ 匿名化与伪匿名化🔍 数据审计与监控 1. 📜 数据隐私与合规要求 数据隐私保护是现代数字时代的一项重要议题,涉及如…

SSL VPN | Easyconnect下载安装使用 (详尽)

EasyConnect是一款远程连接工具,为用户提供简便、快捷的远程访问和控制解决方案。 目录 下载 安装 使用 卸载 下载 通过链接进入官网技术支持板块 深信服技术支持-简单、高效、自助化服务 (sangfor.com.cn)https://support.sangfor.com.cn/ 选择软件下载 在安…

Linux 应用层协议HTTP

文章目录 一、初始HTTP协议二、URL格式网络中怎么通过URL进行定位资源呢?编码和解码 三、HTTP的请求格式和响应格式HTTP的请求格式HTTP的响应格式HTTP的请求方法GET方法POST方法GET Vs PostHTTP的封装和分用文件流操作浏览器获得一个完整的网页流程 HTTP的状态码对3…

Java | Leetcode Java题解之第452题用最少数量的箭引爆气球

题目&#xff1a; 题解&#xff1a; class Solution {public int findMinArrowShots(int[][] points) {if (points.length 0) {return 0;}Arrays.sort(points, new Comparator<int[]>() {public int compare(int[] point1, int[] point2) {if (point1[1] > point2[1…

【分布式微服务云原生】详解Redis的主从模式,主服务器挂了如何从多个从服务器选出新的主服务器

深入探索Redis主从模式&#xff1a;架构、故障转移与最佳实践 摘要&#xff1a; 本文深入探讨了Redis的主从复制模式&#xff0c;包括其工作原理、故障转移机制以及如何配置和管理这一模式。文章通过清晰的结构和实例代码&#xff0c;帮助读者理解如何在实际项目中应用Redis主…

浏览器前端向后端提供服务

WEB后端向浏览器前端提供服务是最常见的场景&#xff0c;前端向后端的接口发起GET或者POST请求&#xff0c;后端收到请求后执行服务器端任务进行处理&#xff0c;完成后向前端发送响应。 那浏览器前端向后端提供服务是什么鬼&#xff1f; 说来话长&#xff0c;长话短说。我在人…

nginx配置多域名共用服务器80端口

nginx配置多域名共用服务器80端口 多个域名&#xff0c;比如两个域名&#xff0c;这两个域名其实共用一台服务器&#xff08;意味着域名解析到同一个IP&#xff09;&#xff0c;一个域名为abc.com&#xff08;可以是http://abc.com或者www.abc.com&#xff09;,另外一个域名为x…

【rCore OS 开源操作系统】Rust HashMap应用 知识点及练习题

【rCore OS 开源操作系统】Rust HashMap应用 知识点及练习题 前言 这一章节中的题目难度一下子就起来了&#xff0c;难度主要在两个方面&#xff1a; Rust 特性 HashMap 相关 API 不熟悉题目理解&#xff08;英语理解能力丧失ed 不知道 HashMap API&#xff0c;问题也不大…