前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OJ刷题记录:L1-204-Ribbon负载均衡-轮询算法(10分)

OJ刷题记录:L1-204-Ribbon负载均衡-轮询算法(10分)

作者头像
英雄爱吃土豆片
发布2020-10-29 11:03:30
2910
发布2020-10-29 11:03:30
举报
文章被收录于专栏:英雄爱吃土豆片

L1-204-Ribbon负载均衡-轮询算法(10分)

题目要求: 最近出题人在学分布式,想分享给大家这个有趣东西。 负载均衡算法:rest接口第几次请求数 % 服务器集群总数 = 实际调用服务器位置下标,并且每次服务重启后rest接口计数重新从1开始 127.0.0.1:8002、127.0.0.1:8001 组合成为集群,它们共计两台机器,即集群总数为2,根据上述描述以下是调用原理: 当总请求数为1时:1 % 2 = 1 对应下标位置为1,则获得服务地址为127.0.0.1:8001 当总请求数为2时:2 % 2 = 0 对应下标位置为0,则获得服务地址为127.0.0.1:8002 当总请求数为3时:3 % 2 = 1 对应下标位置为1,则获得服务地址为127.0.0.1:8001 … 输入 第一行输入服务器集群总数n 第二行开始输入n个服务地址 接下来输入相应的命令,发送请求代号为®、服务重启代号为(S)、结束服务代号为(E) 输出 根据输入的命令输出对应的服务地址 样例输入 2 127.0.0.1:8002 127.0.0.1:8001 S R R R S R E 样例输出 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8001 127.0.0.1:8001

解题思路: 如题目要求,理解题意就能通过。本题很好理解,也没有什么坑。

通关代码:

代码语言:javascript
复制
#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main() {
	int n, rest = 1;
	char command;
	string value;
	vector<string> RAC;
	vector<string> results;
	
	cin >> n;
	
	for (int i = 0; i < n; i++) {
		cin >> value;
		RAC.emplace_back(value);
	}
	
	while (command != 'E')  {
		cin >> command;
		
		if (command == 'S') {
			rest = 1;
		} else if (command == 'R') {
			results.emplace_back(RAC[rest % n]);
			rest++;
		}
	}
	
	int LEN = results.size();
	
	for (int i = 0; i < LEN; i++) {
		cout << results[i] << endl;
	}
	
	return 0;
}

通关截图:

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/08/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • L1-204-Ribbon负载均衡-轮询算法(10分)
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档