如何使用c#实现加权循环?

2023-12-10

如果我有一些服务器:192.168.100.1、192.168.100.2、192.168.100.3、192.168.100.4... 它们的权重为:5,1,2,3

我想实现负载均衡,但是如何使用C#实现加权循环?


假设你有服务器a, b, c, d。并且你有相应的权重5, 1, 2, 3。您可以通过以下方式进行加权循环:

Random rand = new Random(seed);

void processRequest(Request r){

    // assume rand.next() returns a uniformly distributed integer >= 0
    int i = rand.next() % 11; // 11 is sum of weights

    if(i <= 4)      // process r with server a
    else if(i == 5) // process r with server b
    else if(i <= 7) // process r with server c
    else            // process r with server d
}

rand.next() % 11返回范围内均匀分布的整数[0, 10](包括的)。我们与服务器处理请求a对于五个可能的值[0, 4]。我们与服务器处理请求b仅针对一个可能的值5等等。

请特别注意您使用的特定随机方法和种子值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用c#实现加权循环? 的相关文章

随机推荐

  • 迁移到 Git LFS 和跟踪文件时的命令顺序

    我想将 LFS 用于现有的 Git 存储库并跟踪 foo文件 也转换历史文件 我想我可以这样做 git lfs track foo changed gitattributes and all foo files commit a m Sta
  • Angular 5 HttpClient 发布原始二进制数据

    我的 Web 应用程序需要通过 ProtoBuf 与我的服务器通信 为了实现这一点 我需要能够发布原始二进制数据 这是我现在正在使用的代码 这样做的问题是HttpClient将 Uint8Array 编码为 JSON 数组 因此结果不再是有
  • 监听tomcat领域认证事件

    我需要知道 tomcat 何时接受使用给定上下文的领域身份验证的登录 我一直在查看可能的可用侦听器 ServletContextListener 和 ServletContextAttributeListener 但不知道如何在登录发生时收
  • 使用后台任务设置剪贴板内容 [Windows 10] [UWP]

    我正在开发通用 Windows 10 应用程序 目前 我有一个后台任务 一旦用户收到通知就会触发该任务 该BG任务的目的是复制通知的内容 问题在于 Clipboard setcontent 方法似乎是单线程的 而不是多线程 BG 任务 我尝
  • MultipartFile / blob 保存在数据库中时出现问题

    你好 我想上传图像并将其存储到数据库中 我使用 spring mvc 和 hibernate 这是模型 import java sql Blob import java util Date import javax persistence
  • 将日期转换为月份和年份

    如何使用 python 从以下日期获取月份和年份 日期是 2011 07 01 09 26 11 This showud display as This month 2011 06 07 09 26 11 This should displ
  • Matlab,创建额外向量的替代方法?

    如果我有这个 我会收到错误 sum vector cumsum vector length vector gt gt Error indexing must appear last in an index expression 我知道我可以
  • 如何将 Bootstrap 的容器 div 调整为距左视口边缘 100px?

    我正在使用 Twitter Bootstrap 固定布局 其中容器div has margin left auto margin right auto 所以它始终位于中心 我想要做的是定位容器 以便浏览器窗口左边框和容器之间有 100px
  • UNNEST(hit.eCommerceAction),Google Bigquery

    我使用相同的逻辑来取消嵌套 hit eCommerceAction 但它不能像其他字段一样工作 对这个问题有帮助吗 另外 max if 函数是用于获取两个 hit customeDimenison value 的正确函数吗 SELECT D
  • 如何使用 summarise_each 计算加权平均值?

    如何使用 dplyr 中的 summarise each 计算数据集中所有字段的加权平均值 例如 假设我们想要将mtcars数据集由cyl并计算所有列的加权平均值 其中权重被视为gear柱子 我已经尝试过以下方法 但无法使其工作 mtcar
  • PHP 在 77FCAFF8 处遇到访问冲突

    我正在运行一个也使用 Ajax 和 jQuery 的 PHP 网站 该网站将正常运行相当长的一段时间 突然我的页面 和 ajax 检索的子页面 返回消息 PHP 在 77FCAFF8 处遇到访问冲突 看来重新启动服务器可以解决该问题 运行
  • matplotlib生成的PDF无法在acrobat reader中查看

    我正在使用 matplotlib 绘制数据 包括 LaTeX 字体 创建的 pdf 可以通过 evince inkscape GIMP 显示 但不能通过 acroread resp 显示 土坯阅读器 代码原型适用于很多图形 只有少数绘图存在
  • BulletPhysics (ammo.js) - 您将如何向物体施加力?

    澄清 ammo js是使用 mscripten 的 Bullet 物理端口 我有一个角色 本质上是一个方块 需要用力推动 我已经尝试了 我认为 所有的力方法 但我仍然无法移动方块 setVelocity 1 0 0 甚至不会移动方块 它只是
  • C++ 成员函数定义类前缀快捷方式(也是模板)

    给出以下类声明 template
  • 为什么不能使用 < 或 > 来比较 NSDate?

    NSDate date NSDate date NSDateFormatter dateFormat NSDateFormatter alloc init dateFormat setDateFormat MM dd yyyy NSLog
  • 何时使用 try/catch 块?

    我已经阅读并理解了 Try Catch 块的作用以及为什么使用它很重要 但我坚持知道何时何地使用它们 有什么建议吗 我将在下面发布我的代码示例 希望有人有时间为我的示例提出一些建议 public AMPFileEntity string f
  • 使用 localStorage 时使用 msal-react 注销所有选项卡

    我有一个 React 18 x 和 NextJS 12 x 应用程序 它使用msal react1 4 4 依赖 msal browser 2 28 0 和 Azure B2C 进行身份验证 我的配置是这样的 export const ms
  • 在 Matlab 中删除特定行

    我有一个相当大的 2x2 矩阵 其中包含日期和温度 有一群 NaN 和不正确的数据 我用了find获取包含错误数据的索引 这些索引存储在另一个变量中 如何删除与索引对应的行 日期和值 谢谢 fairly large 2x2 matrix没有
  • SQL Server通过分隔符(动态长度)将字符串拆分为列[重复]

    这个问题在这里已经有答案了 SQL Server 无法使用 MySQL split index 函数 并且我的环境面临可访问性阻塞 无法在服务器上使用某些函数 例如 CREATE INSERT 有没有什么方法可以通过固定分隔符将字符串拆分为
  • 如何使用c#实现加权循环?

    如果我有一些服务器 192 168 100 1 192 168 100 2 192 168 100 3 192 168 100 4 它们的权重为 5 1 2 3 我想实现负载均衡 但是如何使用C 实现加权循环 假设你有服务器a b c d