基于protobuf和muduo的RPC框架学习
RPC原理即RPC字面意思,远程过程调用,跨机器调用方法,实际它的作用更大,常常用于网络通信中,例如分布式缓存,数据库等 网络通信以二进制传输数据,而protobuf序列化刚好生成二进制,既节约了空间,又实现网络通信条件, 与序列化协议的效率、性能、序列化协议后的体积相比,其通用性和兼容性的优先级会更高,因为他是会直接关系到服务调用的稳定性和可用率的 rpc一般用于高并发的场景,所以常结合IO多路复合,React模型来使用 零拷贝技术:sendifle,共享内存 simple mprpc记录应用mprpc框架的一个聊天室实现 mprpc protobuf使用:protc xxx.proto –cpp_out=./ 所有的message都有一个父类Message因此才有所有的service都有一个父类Service 一个login rpc12345678910111213141516171819202122232425262728syntax = "proto3";package fixbug;option...
vim
如果你想在键盘上按得飞快,如果你是经常在服务器端编程,那vim就不得不学了。 Vim常用四种模式 普通模式:Vim 启动后的默认模式,用来移动光标、删除文本、覆盖输入文本、恢复操作、粘贴文本等等。 插入模式:输入 i 或 a 进入插入模式,在这个模式下敲击键盘会往文字缓冲区增加文字,相当于普通编辑器的编辑模式。 可视模式:选择文本,可以行选、块选和依次选择,选择后可以进行复制、删除、排序等操作。 命令模式:执行内部和外部命令,通过 “:” “/” “?” “:!” 可以进入命令模式,分别对应的是:执行内部命令、向上或向下搜索、执行外部命令。 Vim安装 查看安装的版本 123yum list installed|grep vim# 最好至少安装补强Vimsudo yum install yim-enhanced 中文Vim教程,过两遍tutor 1vimtutor...
cmake
cmake是一个跨平台的编译工具,可以快速编辑构建项目编译环境,自动生成Makefile 示例一12345cmake_minimum_required (VERSION 2.8) #要求cmake最低的版本号project (demo) # 定义当前工程名字set(CMAKE_BUILD_TYPE "Debug")#设置debug模式,如果没有这一行将不能调试设断点set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g)# 设置编译参数选项add_executable(helloworld main.cpp)# 生成可执行文件 外部构建:mkdir build && cd build && cmake .. 在build生成二进制文件,方便删除 直接构建:cmake . 示例二12345├── CMakeLists.txt├── include│ └── func.h├── func.cpp├── main.cpp ...
在阿里云服务器系统为centos8上搭建hexo博客
搭建hexo博客阿里云服务器部署 这里我的操作系统镜像是centos8.2的 安装nginx服务器安装依赖环境,运行库和开发包 1234yum install gcc-c++yum install -y pcre pcre-develyum install -y zlib zlib-develyum install -y openssl openssl-devel 安装nginx 123456# centos8这里可以通过dnf install nginx,# 手动安装wget -c https://nginx.org/download/nginx-1.10.1.tar.gz# 进入nginx目录./configuremake && make install 开放80端口 1/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 启动nginx 1234cd /usr/local/nginx #没有的话whereis nginx找一下cd sbin./nginxps aux|grep...
step
vscode配置c++环境安装MinGW, 官网下拉没有了,去github下载,Releases · niXman/mingw-builds-binaries 我选择gcc12,posix线程版本 windows下配置path… 添加C/C++扩展,在扩展的配置里面选择编译器配置和编译器路径,添加头文件路径(包括下载的库头文件也加在这里) 比如添加boost库,即加入路径”D:/packet/boost_1_86_0/boost_1_86_0/**” 同时在每个目录的.vscode目录下有一个json记录编译器信息 12345678910111213141516171819{ "configurations": [ { "name": "windows-gcc-x64", "includePath": [ ...