重写Sylar基于协程的服务器(0、搭建开发环境以及项目框架 || 下载编译简化版Sylar)

这篇具有很好参考价值的文章主要介绍了重写Sylar基于协程的服务器(0、搭建开发环境以及项目框架 || 下载编译简化版Sylar)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

重写Sylar基于协程的服务器(0、搭建开发环境以及项目框架 || 下载编译简化版Sylar)

重写Sylar基于协程的服务器系列:

重写Sylar基于协程的服务器(0、搭建开发环境以及项目框架 || 下载编译简化版Sylar)

重写Sylar基于协程的服务器(1、日志模块的架构)

重写Sylar基于协程的服务器(2、配置模块的设计)

重写Sylar基于协程的服务器(3、协程模块的设计)

重写Sylar基于协程的服务器(4、协程调度模块的设计)

重写Sylar基于协程的服务器(5、IO协程调度模块的设计)

重写Sylar基于协程的服务器(6、HOOK模块的设计)

重写Sylar基于协程的服务器(7、TcpServer & HttpServer的设计与实现)

前言

sylar是一个基于协程的服务器框架。同go语言思想一样,整个框架贯彻协程化的思想,淡化线程的存在。笔者有幸反复阅读sylar数次,并重写过base核心模块。该项目是我真正入门C++的第一个项目,我也将其作为本科毕设,顺利通过答辩。非常感谢sylar的作者能将多年从业经验浓缩在这个项目当中,这真的是为后来者点了一扇关键的灯。

环境搭建以及下载安装

开发环境参考如下表:

环境 版本
Linux操作系统 CentOS 7.5 64位(2核2G)
G++编译器 4.8.5
CMake 3.14.5
C++标准 C++11
项目调试工具 GDB
项目开发工具 VSCode

搭建项目框架:

本系统的文件结构如图所示。项目根目录有CMakeList文件和Makefile文件,也即有两种编译方式。编译输出的中间文件输出在build目录,二进制文件输出在bin目录下,静态库以及动态库输出在lib目录下,src目录存放项目源码,源码划分为基础模块、网络模块、初始化模块、以及HTTP模块,本文重点集中在基础模块,即src/base目录下的文件。bin目录存放的是二进制可执行程序。bin/conf以及bin/module目录分别存放的是,可执行程序的配置文件以及动态库模块。

sylar源码下载,重写Sylar基于协程服务器,服务器,c++,开源,linux,后端,架构,github

下载、编译、试玩重写的简化版sylar:

去除了sylar原来的负载均衡、数据库连接、protobuff、orm、zk等模块。(实际上是太菜了,这些模块没跟下去。)

#源码下载
git clone https://github.com/LunarStore/lunar.git 

# 安装boost库
yum install boost-devel # boost库

# 安装yaml-cpp(可能需要升级cmake
git clone https://github.com/jbeder/yaml-cpp.git
cd yaml-cpp
mkdir build && cd build
cmake .. && make -j
sudo make install

# 创建build目录
cd lunar
mkdir build
cd build

# 在build目录生成makefile文件
cmake ..

# 编译
make -j2

# 建立一个必要目录
# 否则会报错:
# 2024-01-28 05:01:06	[ERROR]	[system]	/root/workspace/lunar/src/init/application.cc:116	open pidfile /apps/work/lunar/lunar.pid failed
mkdir -p /apps/work/lunar

# 终端运行,让网站跑起来
../bin/test_application -s

浏览器输入ip:8090出现默认页如下:

sylar源码下载,重写Sylar基于协程服务器,服务器,c++,开源,linux,后端,架构,github


本章完结文章来源地址https://www.toymoban.com/news/detail-859150.html

到了这里,关于重写Sylar基于协程的服务器(0、搭建开发环境以及项目框架 || 下载编译简化版Sylar)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 重写 Nacos 服务发现:多个服务器如何跨命名空间,访问公共服务?

    在开发某个公共应用时,笔者发现该公共应用的数据是所有测试环境(假设存在 dev/dev2/dev3)通用的。 这就意味着只需部署一个应用,就能满足所有测试环境的需求;也意味着所有测试环境都需要调用该公共应用,而不同测试环境的应用注册在不同的 Nacos 命名空间。 如果所

    2024年02月04日
    浏览(50)
  • 2310C++协程超传服务器

    原文 告别 异步 回调模型,写代码更简单.同样也是跨平台, 仅头文件 的,包含头文件即可用,来看看它的用法. 提供 getpost 服务 coro_http_server 提供了三个 http 服务,通过 set_http_handler 注册的,注册了两个 http 处理函数:一个是 普通 函数,一个是 协程 函数. 注册为 普通函数 时,会在 i

    2024年02月06日
    浏览(33)
  • 基于Linux的服务器搭建

    Linux操作系统搭建服务器,Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它在服务器方面保持着强劲的发展势头,在目前,由

    2024年02月04日
    浏览(55)
  • 一、重写muduo网络库之服务器编程及测试

    目录 一、基于muduo网络库开发服务器程序的基本步骤 1、组合TcpServer对象 2、创建EventLoop事件循环对象的指针 3、明确TCPServer构造函数需要的参数,输出ChatServer的构造函数 4、在当前服务器类的构造函数当中,注册处理连接的回调函数和处理读写事件的回调函数 5、设置合适的

    2024年02月04日
    浏览(42)
  • 使用Swoole协程实现 WebRTC 信令服务器

    一、 什么是WebRTC WebRTC技术是激烈的开放的Web战争中一大突破-Brendan Eich, inventor of JavaScript。 简单来说,WebRTC 是一个音视频处理+及时通讯的开源库。在实时通信中,音视频的采集和处理是一个很复杂的过程。比如音视频流的编解码、降噪和回声消除等。由Google发起开源,其中

    2024年03月26日
    浏览(53)
  • 基于 Docker 搭建 Jellyfin 媒体服务器

    本文源码:https://github.com/chen2438/chenhaotian.top/tree/main/source/_posts/linux-app/jellyfin.md 在我的博客上查看: https://chenhaotian.top/2022/10/27/linux-app/jellyfin/ 官方教程 如果未安装 docker-compose, 只需要 sudo apt install docker-compose 即可 编写 docker-compose.yml 启动服务 启动后可以通过 docker ps 查看容

    2024年02月07日
    浏览(39)
  • 基于CentOS的FTP服务器搭建

    目录 一,简介 1,Centos中的FTP 2,vsftpd 二,vsftpd的安装 1,安装vsftpd服务 2,开启服务 3,端口 4,关闭防火墙 三,vsftp匿名模式搭建 1,修改配置文件 2,修改权限 3,重启服务 四,vsftpd本地模式搭建 2,创建目录

    2024年02月06日
    浏览(45)
  • Openstack服务器平台搭建手册(基于省赛资源搭建)

    Openstack版本:Q版本(chinaskills_cloud_iaas.iso)其他版本也可 配置需求:一台交换机(能通外网的交换机,这里不做网络的配置),两台服务器(CPU,内存和硬盘等资源越大越好),装有CentOS系统的启动盘(这里使用CentOS-7-x86_64-DVD-1804.iso作为例子) 1.交换机的配置 为三层交换机

    2024年04月16日
    浏览(42)
  • 快速搭建个人MQTT服务器(基于EMQX)

    4分钟快速搭建个人MQTT服务器(基于EMQX) 相信看到这篇教程的人应该对MQTT协议有了一定的了解。其实提供MQTT服务的厂商也有很多,比较知名的有EMQX等。EMQX虽然提供了免费的公共MQTT5服务器。 但是对于多个用户利用公共服务器同时订阅或发布同一主题内容时,可能会接收到

    2024年02月03日
    浏览(54)
  • Go重写Redis中间件 - GO实现TCP服务器

    首先新建一个项目go-redis,将config和lib包放到项目中,config.go用来解析配置,比如端口、功能、DB数;lib包有两个文件夹,分别是logger和sync,其中logger.go是一个日志框架,sync包中的bool.go包装了atomic操作,因为atomic原生没有bool类型,所以将uint32类型改造成bool型的atomic,wait.g

    2024年02月15日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包