【一】开始篇

news/2024/10/10 2:14:13

概述

之前在暑假有空学习了一下mprpc项目,这是一个基于陈硕大佬写的muduo库、protobuf的分布式rpc框架,现在想整理一下内容(众所周知,学了不整理等于白学)

技术栈

  • 集群和分布式概念以及原理
  • RPC远程过程调用原理以及实现
  • Protobuf数据序列化和反序列化协议
  • Protobuf数据序列化和反序列化协议
  • ZooKeeper分布式一致性协调服务应用以及编程
  • muduo网络库编程
  • conf配置文件读取
  • 异步日志
  • CMake构建项目集成编译环境
  • github管理项目
  • C++11新特性(thread、bind等)

项目环境

ubuntu22.04(muduo、boost、Zookeeper)、VSCode

环境安装

boost库安装

1、去boost官网下载源码

2、解压安装

tar -zxvf boost_1_86_0.tar.gz
# 进入目录
cd boost_1_86_0/# 运行bootstrap.sh工程编译构建程序,需要等待一会儿
./bootstrap.sh # 源码根目录下生成了b2程序,运行b2程序如下
./b2

安装成功会出现这样

最后,再把上面的boost库头文件和lib库文件安装在默认的Linux系统头文件和库文件的搜索路径下,运行下面命令(因为要给/usr目录下拷贝文件,需要先进入root用户)
root@hf-virtual-machine:/home/hf/Env/boost_1_86_0# ./b2 install

安装成功会打印如下信息

3、验证安装是否成功(使用一下C++11的bind()函数)

#include <iostream>
#include <boost/bind.hpp>
#include <string>
using namespace std;class Print
{
public:void print(string name) { cout << name << " is learning Cpp!" << endl; }
};int main()
{Print p;auto func = boost::bind(&Print::print, &p, "hao fei");func();return 0;
}

编译运行后输出

至此,boost库安装完毕!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/53892.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

.net MAUI 发布时报错,无法识别指定的 RuntimeIdentifier“win10-x64”的原因

是因为MAUI项目引用了普通的C#类库导致的。MAUI只能引用MAUI类库,不能引用普通的类库。虽然能运行但用vs发布时会报错。可以使用命令行打包。dotnet publish -f net8.0-windows10.0.19041.0 -c Release -p:RuntimeIdentifierOverride=win10-x64 参考https://learn.microsoft.c…

【Linux网络编程】字节序

【Linux网络编程】字节序 字节序 字节序就是字节在内存中存储的顺序,如32位整数0x01234567,在内存中存储时,有如下两种顺序:大端序将数值的高位存储在低位地址中,小端序则相反。 网络字节序 网络中传输数据均采用大端序。 Linux字节序转换函数 在 #include <netinet/in…

简化登录流程,助力应用建立用户体系

随着智能手机和移动应用的普及,用户需要在不同的应用中注册和登录账号,传统的账号注册和登录流程需要用户输入用户名和密码,这不仅繁琐而且容易造成用户流失。 华为账号服务(Account Kit)提供简单、快速、安全的登录功能,让用户快捷地使用华为账号登录应用。用户授权后,…

【SQL练习】demo1

为了适应技术发展的需求,SQL 标准于 2016 年增加了以下 JSON 功能: JSON 对象的存储与检索。将 JSON 对象表示成 SQL 数据。将 SQL 数据表示成 JSON 对象。如今,主流关系型数据库都增加了原生 JSON 数据类型和相关函数的支持,使得我们可以将 SQL 的强大功能与 JSON 文档存储…

Spring Boot 整合 Kafka

项目目录结构pom.xml<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Kafka Starter --><dependency><groupId&…

.NET8 接入qwen2大语言模型

前言 dotnet8项目接入qwen大模型,这个主要用到了大模型管理工具叫做 ollama 有了它,接入大模型so easy。使用ollama可以接入很多大模型,详见:https://ollama.com/library 环境vs2022 preview dotent8 Windows 10 企业版1、下载ollama https://github.com/ollama/ollama安装…

实践项目-模拟公司自动化运维

(20240828,准备更新PostgreSQL部分) 大纲环境配置 系统:Debian 12.06 环境:阿里云ECS 以及 虚拟机序号 IP地址 域名 主机名1 192.168.100.12 k8s-master.yourname.com k8s-master2 192.168.100.15 k8s-node1.yourname.com k8s-node13 192.168.100.16 k8s-node2.yourname.c…

解决方案 | QTTabBar工具栏命令按钮设置everything、filelocator在当前文件夹下面搜索

备忘 everything 命令行参数参考 -path(是everythin参数) 表示在哪个位置(即哪个文件夹)下面搜索,这里%c%是qttabbar的参数,表示当前文件夹 https://www.voidtools.com/zh-cn/support/everything/command_line_interface/效果演示:===================== filelocatorpro…