推荐非常强大的高性能 C++ 服务器引擎!
Posted 架构师必备
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐非常强大的高性能 C++ 服务器引擎!相关的知识,希望对你有一定的参考价值。
你可以用来:
快速搭建http服务器:
#include <stdio.h>
#include "workflow/WFHttpServer.h"
int main()
{
WFHttpServer server([](WFHttpTask *task) {
task->get_resp()->append_output_body("<html>Hello World!</html>");
});
if (server.start(8888) == 0) { // start server on port 8888
getchar(); // press "Enter" to end.
server.stop();
}
return 0;
}
作为万能异步客户端。目前支持
http
,redis
,mysql
和kafka
协议。轻松构建效率极高的spider。
实现自定义协议client/server,构建自己的RPC系统。
srpc就是以它为基础,作为独立项目开源。支持
srpc
,brpc
和thrift
等协议。构建异步任务流,支持常用的串并联,也支持更加复杂的DAG结构。
作为并行计算工具使用。除了网络任务,我们也包含计算任务的调度。所有类型的任务都可以放入同一个流中。
在
Linux
系统下作为文件异步IO工具使用,性能超过任何标准调用。磁盘IO也是一种任务。实现任何计算与通讯关系非常复杂的高性能高并发的后端服务。
构建微服务系统。
项目内置服务治理与负载均衡等功能。
系统设计特点
我们认为,一个典型的后端程序由三个部分组成,并且完全独立开发。即:程序=协议+算法+任务流。
基础任务,任务工厂与复合任务
我们系统中包含六种基础任务:通讯,文件IO,CPU,GPU,定时器,计数器。
一切任务都由任务工厂产生,并且在callback之后自动回收。
server任务是一种特殊的通讯任务,由框架调用任务工厂产生,通过process函数交给用户。
大多数情况下,用户通过任务工厂产生的任务,都是一个复合任务,但用户并不感知。
异步性和基于``C++11 std::function``的封装
不是基于用户态协程。使用者需要知道自己在写异步程序。
一切调用都是异步执行,几乎不存在占着线程等待的操作。
虽然我们也提供一些便利的半同步接口,但并不是核心的功能。
内存回收机制
任何任务都会在callback之后被自动内存回收。如果创建的任务不想运行,则需要通过dismiss方法释放。
任务中的数据,例如网络请求的resp,也会随着任务被回收。此时用户可通过
std::move()
把需要的数据移走。
项目地址
以上是关于推荐非常强大的高性能 C++ 服务器引擎!的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 整合模板引擎 Freemakerthymeleaf