当前位置: 首页 > wzjs >正文

做筹款的网站需要什么资质汕头网站建设开发

做筹款的网站需要什么资质,汕头网站建设开发,百度网址链接收录提交入口,长沙人才网官网项目绍 码云仓库:MessageQueues: 仿Rabbit实现消息队列 文章概要 本文将介绍从零搭建一个简易消息队列的方法,目的是了解并学习消息队列的底层原理与逻辑,编写一个独立的服务器程序。从搭建开发环境开始,到编写一些工作组件&am…

项目绍

码云仓库:MessageQueues: 仿Rabbit实现消息队列

文章概要

  • 本文将介绍从零搭建一个简易消息队列的方法,目的是了解并学习消息队列的底层原理与逻辑,编写一个独立的服务器程序。从搭建开发环境开始,到编写一些工作组件,再到正式开始编写消息队列。

什么是消息队列?

  • 消息队列是一个服务器程序,也可以看做是一个被封装为独立服务器程序的阻塞队列,而阻塞队列的最大用途就是用来实现生产者消费者模型,这个模型可以让我们的程序实现解耦合、支持并发、支持忙闲不均、削峰填谷等功能。

  • 市面上成熟的消息队列有很多,如:RabbitMQ、Kafka、RocketMQ、ActiveMQ…

开发环境

  • Linux(CentOS-7.6),可根据自己需要更换为Ubuntu
  • VSCode
  • g++/gdb
  • Makefile(也可以使用CMake)

所用技术栈

  • C++
  • 序列化框架:Protobuf
  • 网络通信:自定义应用层协议+Muduo库:对tcp⻓连接的封装、并且使⽤epoll的事件驱动模式,实现⾼并发服务器与客⼾端
  • 源数据信息数据库:SQLite3(因为本项目数据量较小,所以选取了一个更加轻量级的数据库)
  • 单元测试框架:Gtest

开发环境的搭建

  • 这里分别列举CentOS7.6与Ubuntu-22.04的环境配置

CentOS7.6的环境搭建

安装wget
sudo yum install wget
更换软件源
sudo mv /etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.bak
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all
sudo yum makecache
安装scl软件源
sudo yum install centos-release-scl-rh centos-release-scl
安装epel软件源
sudo yum install epel-release
安装lrzsz传输工具
sudo yum install lrzsz
安装高版本gcc/g++编译器
sudo yum install devtoolset-7-gcc devtoolset-7-gcc-c++
echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc
source ~/.bashrc
安装git
sudo yum install git
安装CMake
sudo yum install cmake
安装Protobuf
  • 安装Protobuf依赖库
sudo yum install autoconf automake libtool curl make gcc-c++ unzip
  • 下载Protobuf包
wget 
https://github.com/protocolbuffers/protobuf/releases/download/v3.20.2/protobuf-all-3.20.2.tar.gz
  • 编译安装
tar -zxf protobuf-all-3.20.2.tar.gz//解压缩
cd protobuf-3.20.2/ //切换目录
./autogen.sh 
./configure
make //开始编译,大概需要编译15分钟
sudo make install //开始安装
protoc --version//确认是否安装成功
安装Muduo库
git clone https://github.com/chenshuo/Muduo.git //git方式
wget https://gitee.com/hansionz/mq/raw/master/resource/Muduo-master.zip //如果觉得git下的太慢,可以使用这一条指令
sudo yum install gcc-c++ cmake make zlib zlib-devel boost-devel //安装依赖环境
./build.sh
./build.sh install //运行脚本编译安装
安装SQLite3
sudo yum install sqlite-devel
sqlite3 --version //验证是否安装成功
安装Gtest
sudo yum install epel-release
sudo yum install dnf
sudo dnf install dnf-plugins-core
sudo dnf install gtest gtest-devel
  • 使用dnf安装软件时可能会报以下错误
Traceback (most recent call last):File "/usr/bin/dnf", line 57, in <module>from dnf.cli import mainFile "/usr/lib/python2.7/site-packages/dnf/__init__.py", line 30, in <module>import dnf.baseFile "/usr/lib/python2.7/site-packages/dnf/base.py", line 29, in <module>import libdnf.transactionFile "/usr/lib64/python2.7/site-packages/libdnf/__init__.py", line 3, in 
<module>from . import confFile "/usr/lib64/python2.7/site-packages/libdnf/conf.py", line 17, in 
<module>_conf = swig_import_helper()File "/usr/lib64/python2.7/site-packages/libdnf/conf.py", line 16, in 
swig_import_helperreturn importlib.import_module('_conf')File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module__import__(name)
ImportError: No module named _conf
  • 这通常是因为python版本过低导致的,可以输入以下命令解决
yum update python*  //升级python
yum install dnf-data dnf-plugins-core libdnf-devel libdnf python2-dnf-plugin-migrate dnf-automatic -y # 安装如下软件
  • 测试GTest是否安装成功

    • 测试代码

      #include<gtest/gtest.h>
      int add(int a,int b){return a+b;
      }
      TEST(testCase,test1){EXPECT_EQ(add(2,3),5);
      }
      int main(int argc,char **argv){testing::InitGoogleTest(&argc,argv);return RUN_ALL_TESTS();
      }
      
    • 编译源文件

      g++ test_gtest.cc -o gtest -lgtest
      
    • 运行可执行文件

      ./gtest
      
    • 成功

    [==========] Running 1 test from 1 test case.
    [----------] Global test environment set-up.
    [----------] 1 test from testCase
    [ RUN ] testCase.test1
    [ OK ] testCase.test1 (0 ms)
    [----------] 1 test from testCase (0 ms total)
    [----------] Global test environment tear-down
    [==========] 1 test from 1 test case ran. (1 ms total)
    [ PASSED ] 1 test.
    

文章转载自:

http://jB5SJ0XF.qfrmy.cn
http://7mbNlxVU.qfrmy.cn
http://Kx1MRHW2.qfrmy.cn
http://wlAqbvTw.qfrmy.cn
http://CCT5I1J0.qfrmy.cn
http://vw86hX8Y.qfrmy.cn
http://WRxShIm5.qfrmy.cn
http://mRifnkEp.qfrmy.cn
http://9SUkrqDm.qfrmy.cn
http://MUE8dDAw.qfrmy.cn
http://jM2gRSe5.qfrmy.cn
http://Vi1AZmt5.qfrmy.cn
http://dhyuODl3.qfrmy.cn
http://aRRJrki7.qfrmy.cn
http://BtGh17sR.qfrmy.cn
http://20HKIv43.qfrmy.cn
http://p6g8TIod.qfrmy.cn
http://uW0EySpP.qfrmy.cn
http://ARk4pOit.qfrmy.cn
http://wAgcC2EX.qfrmy.cn
http://gGtIrKlf.qfrmy.cn
http://t1Op4BCH.qfrmy.cn
http://0emdbVAl.qfrmy.cn
http://ldWsaHMf.qfrmy.cn
http://7VUL3MOY.qfrmy.cn
http://f1xmEaGt.qfrmy.cn
http://lR8ojg1Y.qfrmy.cn
http://em8pZxRg.qfrmy.cn
http://iFSGIct8.qfrmy.cn
http://8aUwhYvx.qfrmy.cn
http://www.dtcms.com/wzjs/673734.html

相关文章:

  • 网站 后台 开发网页设计色彩搭配
  • 自己做网站 教程wordpress编辑器前端
  • 城厢区住房和城乡建设局网站做网站的公司
  • 网站地址免费中山市城乡住房建设局网站
  • 成品网站nike源码1688深圳中装建设集团有限公司
  • 一站式织梦网站模板直播网站建设
  • 服装电子商务的网站建设如何发布自己的html网站
  • 什么样的网站是php网站网站怎么做seo排名
  • wordpress 文章发布 编辑器seo站群系统
  • dw做存资料网站怎么看网站是不是php语言做的
  • 深圳竞价网站wordpress 文件加载顺序
  • 银川商城网站建设如何做网站服务
  • 网站2级目录怎么做虚拟主机怎么用
  • 电商网站入口建设项目招标在什么网站公示
  • 企业网站必须备案吗wordpress 父级子页面
  • 深圳网站设计 制作网络营销方案规范
  • 西安做网站 怎样备案福州关键词排名推广
  • 黑龙江省城乡建设厅网站首页如何做自己的网站表白
  • 小程序开发定制开发哈尔滨网络优化公司有哪些
  • 广州微信网站建设报价表昆明网站建设建站模板
  • 汕尾住房和城乡建设局网站wordpress站群版
  • wordpress 旅游网站聊城制作手机网站
  • thinkphp旅游网站源码短期设计培训班
  • 衡水网站建设衡水网站建设wordpress获得链接地址
  • 制作一个购物网站要多少钱响应式布局怎么实现
  • 滁州网站建设费用新闻头条今天最新消息
  • 好的h5网站asp网站模板安装
  • 网站开发用了什么平台重庆网站seo建设
  • 做外贸网站方案专业网页制作手机页面
  • 购物网站app开发如何自己制作首页网站