Skip to content

boringtu/load-balancing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

load-balancing

线程安全的动态加权平滑负载均衡算法

How to use

# 项目 clone 下来之后,先安装依赖
npm i
# 如没有翻墙环境,那就这样安装:
npm i --registry https://registry.npm.taobao.org

# 运行单元测试
npm run test

Description

程序文件:

./main.coffee

单元测试文件:

./test.coffee

程序实现说明

大概围绕这么几点:

  1. 弄清题意是啥意思。。 然后就在网上搜了一堆关于 线程安全负载均衡平滑负载均衡动态加权平滑负载均衡 之类的关键词的文章,前几个的概念差不多弄懂了,但最后这个关键词的没找到合适的讲解文章,所以代码基本上是猜着做的,然后测了一下,觉得好像没啥问题。。

  2. 模拟服务器处理请求

目的:

1. 模拟现实情况
2. 异步处理,这样才能做出服务器并发处理的现象

源码:sleep 函数 相关逻辑

  1. 抽象 服务器类

目的:方便记录和操作服务器相关信息和数据,比如 服务器名称服务器权重服务器当前并发量,以及模拟 服务器处理请求 的操作

源码:Server 类

  1. 选择处理请求的服务器函数(负载均衡控制器)

源码:chooseServer 函数

  1. 动态追加服务器函数

源码:addServer 函数

6. 动态移除服务器函数(功能未实现,请忽略)

源码:removeServer 函数

关于线程安全: 正常来说,应该要在接收请求,以及追加服务器移除服务器时,要做线程安全的处理,比如加锁之类的, 但因 JavaScript 语言特性,本身就是单线程的,任何情况下都是线程安全的,所以源码中并没有相关代码。

注:时间主要花在弄清题意上。。代码也是猜着做的,不知道是否符合题意。有些名词也是自己杜撰的。。如有问题还望指出。。

About

线程安全的动态加权平滑负载均衡算法

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published