2402C++,C++的反向代理

原文
cinatra支持反向代理很简单,5行代码就可以了.先看一个简单的示例:

#include "cinatra/coro_http_reverse_proxy.hpp"
using namespace cinatra;
int main() {reverse_proxy proxy_rr(10, 8091);proxy_rr.add_dest_host("127.0.0.1:9001");proxy_rr.add_dest_host("127.0.0.1:9002");proxy_rr.add_dest_host("127.0.0.1:9003");proxy_rr.start_reverse_proxy<GET, POST>("/rr", true, coro_io::load_blance_algorithm::RR);
}

第一步创建一个代理服务器,设置其线程数和端口;第二步添加需要访问的服务器列表;第三步启动代理服务,设置loadbalance策略,这里选择的是roundrobin策略.

在浏览器或client里访问http://127.0.0.1:8091/rr就会根据RR策略选择三个服务器中的一个.

如果要选择random策略就设置为coro_io::load_blance_algorithm::random.
如果要选择weightroundrobin策略,就需要设置服务器权重.

  reverse_proxy proxy_wrr(10, 8090);proxy_wrr.add_dest_host("127.0.0.1:9001", 10);proxy_wrr.add_dest_host("127.0.0.1:9002", 5);proxy_wrr.add_dest_host("127.0.0.1:9003", 5);proxy_wrr.start_reverse_proxy<GET, POST>("/wrr", true, coro_io::load_blance_algorithm::WRR);

在浏览器或client里访问http://127.0.0.1:8090/wrr,第一次和第二次会返回9001服务器的结果,第三次返回9002服务器的结果,第四次返回9003服务器的结果,第五次又重新返回9001服务器的结果,这就是WRR的策略.

更多

cinatra的反向代理是零拷贝的,代理服务器会把被代理服务器的httpcontent零拷贝的响应传递给客户,性能会更好!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1401:机器翻译

分析&#xff1a;模拟题&#xff0c;用vector模拟队列实现 指向queue队首的l指针&#xff0c;指向queue队尾的r指针&#xff08;用push_back()代替也一样&#xff09; 指针更新情况为&#xff1a; 搜索有单词&#xff0c;不做处理搜索无单词&#xff0c;判断内存长度&#x…

【机器学习】机器学习常见算法详解第4篇:KNN算法计算过程(已分享,附代码)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习&#xff0c;伴随浅显易懂的数学知识&#xff0c;让大家掌握机器学习常见算法原理&#xff0c;应用Scikit-learn实现机器学习算法的应用&#xff0…

房屋租赁系统的Java实战开发之旅

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

第11章 GUI

11.1 Swing概述 Swing是Java语言开发图形化界面的一个工具包。它以抽象窗口工具包&#xff08;AWT&#xff09;为基础&#xff0c;使跨平台应用程序可以使用可插拔的外观风格。Swing拥有丰富的库和组件&#xff0c;使用非常灵活&#xff0c;开发人员只用很少的代码就可以创建出…

免费申请一个美国EDU学生邮箱

EDU邮箱的作用 例如大名鼎鼎的GitHub学生包。包含各种服务器的优惠卷&#xff0c;可以让你免费使用1-2年的服务器。免费的域名。免费的网站证书。太多了。 微软&#xff1a;免费的5T的OneDrive账户。 Google&#xff1a;G Sutie Drive无限容量 微软、苹果、AWS、都有针对学…

二叉树前序中序后序遍历(非递归)

大家好&#xff0c;又和大家见面啦&#xff01;今天我们一起去看一下二叉树的前序中序后序的遍历&#xff0c;相信这个对大家来说是信手拈来&#xff0c;但是&#xff0c;今天我们并不是使用常见的递归方式来解题&#xff0c;我们采用迭代方式解答。我们先看第一道前序遍历 1…

CCF编程能力等级认证GESP—C++6级—20231209

CCF编程能力等级认证GESP—C6级—20231209 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)闯关游戏工作沟通 答案及解析单选题判断题编程题1编程题2 单选题…

js中数字精度丢失问题详解(如何解决)

文章目录 一、场景复现二、浮点数三、问题分析小结 四、解决方案参考文献 一、场景复现 一个经典的面试题 0.1 0.2 0.3 // false为什么是false呢? 先看下面这个比喻 比如一个数 130.33333333...... 3会一直无限循环&#xff0c;数学可以表示&#xff0c;但是计算机要存…

mysql 2-17

UNION关键字和UNION ALL 自然连接 USING使用 函数 单行函数 基本函数 三角函数 指数和对数 进制间的转换 字符串函数 时间和日期函数 计算日期和时间的函数 日期的格式化和解析 流程控制函数

《剑指 Offer》专项突破版 - 面试题 47 : 二叉树剪枝(C++ 实现)

题目链接&#xff1a;LCR 047. 二叉树剪枝 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 一棵二叉树的所有节点的值要么是 0 要么是 1&#xff0c;请剪除该二叉树中所有节点的值全都是 0 的子树。例如&#xff0c;在剪除下图 (a) 中二叉树中所有节点值都为 0 的…

【NI-DAQmx入门】处理数据采集和测试系统中噪声的几种主要方法

在实际的测试系统中测量模拟信号并不总是像将信号源连接到测量设备那么简单。数据完整性取决于被控制和监视的电气设备发送和接收的干净的电信号。 电噪声可能会掩盖电信号并使其无法识别&#xff0c;从而损害原本具备功能的 DAQ 系统。数据采集​​是关键任务应用测试系统的一…

110 C++ decltype含义,decltype 主要用途

一&#xff0c;decltype 含义和举例 decltype有啥返回啥&#xff0c;auto则不一样&#xff0c;auto可能会舍弃一些东西。 decltype 是 C11提出的说明符。主要作用是&#xff1a;返回操作数的数据类型。 decltype 是用来推导类型&#xff0c;decltype对于一个给定的 变量名或…

C语言:螺旋阵

右螺旋阵 输入格式 一行&#xff0c;输入两个正整数n和m&#xff08;2≤n,m≤30&#xff09;&#xff0c;分别表示行和列数 输出格式 输出对应的右螺旋矩阵 一个4*4的右螺旋矩阵是下面这个样子的&#xff1a; 1 2 3 4 12 13 14 5 11 16 15 6 10 9 &#xff18; 7 void …

【深度优先】【广度优先】Leetcode 104 二叉树的最大深度 Leetcode 110 二叉树的最小深度

【深度优先】【广度优先】Leetcode 104 二叉树的最大深度 Leetcode 104 二叉树的最大深度解法1 深度优先 递归法 后序&#xff1a;左右中解法2 广度优先&#xff1a;层序遍历 Leetcode 110 二叉树的最小深度解法1 深度优先&#xff1a;递归 后序遍历 左右中解法2 广度优先&…

C++模板详解 —— 函数模板与类模板

C模板详解 泛型编程函数模板函数模板的概念函数模板的原理 函数模板的实例化函数模板的匹配原则类模板类模板的定义格式类模板的实例化 泛型编程 如果让你编写一个函数&#xff0c;用于两个数的交换。在C语言中&#xff0c;我们会用如下方法&#xff1a; void Swapi(int* p1,…

在PyTorch中,如何查看深度学习模型的每一层结构?

这里写目录标题 1. 使用print(model)2. 使用torchsummary库3.其余方法&#xff08;可以参考&#xff09; 在PyTorch中&#xff0c;如果想查看深度学习模型的每一层结构&#xff0c;可以使用print(model)或者model.summary()&#xff08;如果你使用的是torchsummary库&#xff0…

5.11 BCC工具之statsnoop.py简介

一,工具简介 从工具的名字也能知道,statsnoop工具用于跟踪stat()系统调用。 那么stat()系统调用是做什么的呢? stat()是很常见的一种系统调用。用于获取文件或文件系统的状态信息。通过调用 stat(),你可以获取到关于指定文件或目录的详细信息,如文件大小、文件类型、文…

2024.2.17每日一题

LeetCode N 叉树的层序遍历 429. N 叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个 N 叉树&#xff0c;返回其节点值的层序遍历。&#xff08;即从左到右&#xff0c;逐层遍历&#xff09;。 树的序列化输入是用层序遍历&#xff0c;每组子节点…

机试复习-4

1.string类 string类型和数值的转换 ※数值→字符串 to_string函数 //具体做法 int i1234; string gto_string(i);//这样就转成字符串1234了 //下面就是字符串转为数字&#xff0c;类似下面还有stof,stoi,stod string d "1289347647"; int j stoi(d); cout <…

正则表达式速查表

匹配字符 [abc]匹配a,b,c中的任意一个字符[^abc]不匹配a,b,c中的所有字符&#xff0c;“^”只有作为第一个字符出现才有效[a-g]匹配a-g范围内的任意一个字符[^a-g]不匹配a-g中的所有字符[H-N]匹配H-N范围内的任意一个字符[0-9]匹配0-9范围内的任意一个字符[a-gH-N]匹配a-g,H-N…