自适应负载均衡的设计实现

 

初赛:《自适应负载均衡的设计实现》

赛题背景

负载均衡是大规模计算机系统中的一个基础问题。灵活的负载均衡算法可以将请求合理地分配到负载较少的服务器上。理想状态下,一个负载均衡算法应该能够最小化服务响应时间(RTT),使系统吞吐量最高,保持高性能服务能力。自适应负载均衡是指无论处在空闲、稳定还是繁忙状态,负载均衡算法都会自动评估系统的服务能力,更好的进行流量分配,使整个系统始终保持较好的性能,不产生饥饿或者过载、宕机。

要求
修改题目提供的扩展接口(UserLoadBalance),实现一套自适应负载均衡机制。要求能够具备以下能力:
1、Gateway(Consumer) 端能够自动根据服务处理能力变化动态最优化分配请求保证较低响应时间,较高吞吐量;
2、Provider 端能自动进行服务容量评估,当请求数量超过服务能力时,允许拒绝部分请求,以保证服务不过载;
3、当请求速率高于所有的 Provider 服务能力之和时,允许 Gateway( Consumer ) 拒绝服务新到请求。

 

评测

enter image description here
1、PTS 作为压测请求客户端向 Gateway(Consumer) 发起 HTTP 请求,Gateway(Consumer) 加载用户实现的负载均衡算法选择一个 Provider,Provider 处理请求,返回结果。
2、每个 Provider 的服务能力(处理请求的速率)都会动态变化:

  • 三个 Provider 的总处理能力会分别在小于/约等于/大于请求量三个状态变动;
  • 三个 Provider 任意一个的处理能力都小于总请求量。

3、评测分为预热和正式评测两部分,预热部分不计算成绩,正式评测部分计算成绩。
4、正式评测阶段,PTS 以固定连接数(1024) 向 Gateway 发送请求,1分钟后停止;
5、以 PTS 统计的成功请求数和最大 TPS 作为排名依据。成功请求数越大,排名越靠前。成功数相同的情况下,按照最大 TPS 排名。

排名示例:

名次成功请求数最大 TPS
1 1,000,000 9,999
2 1,000,000 9,998
3 800,000 10,000

 

特别说明
1、由于初赛选手众多,每支参赛队伍每天给予 5 次评测机会,请珍惜使用;
2、请务必在本地验证通过以后再提交评测,除评测环境造成的跑分失败外,其余情况均视为机会已被使用;
3、除环境因素外,恕不能提供针对具体实现的排错支持。

赛题详细说明
赛题组将进行持续更新,请点击链接:
https://code.aliyun.com/middlewarerace2019/adaptive-loadbalance

 

复赛:《实现一个进程内基于队列的消息持久化存储引擎》

赛题背景
Apache RocketMQ作为的一款分布式的消息中间件,历年双十一承载了万亿级的消息流转,为业务方提供高性能低延迟的稳定可靠的消息服务。随着业务的逐步发展和云上的输出,各种依赖消息作为输入输出的流计算场景层出不穷,这些都给RocketMQ带来了新的挑战。请实现一个进程内消息持久化存储引擎,可支持简单的聚合计算,如指定时间窗口的内对于消息属性某些字段的求和、求平均等。

要求
实现一个进程内消息持久化存储引擎,要求包含以下功能:

  • 发送消息功能
  • 根据一定的条件做查询或聚合计算,包括

A. 查询一定时间窗口内的消息
B. 对一定时间窗口内的消息属性某个字段求平均,以及求和

例子:t表示时间,时间窗口(1000, 1002)表示: t>1000 & t<1002

消息内容简化成两个字段,一个是业务字段a(整数),一个是时间戳(long)。实际存储格式用户自己定义,只要能实现对应的读写接口就好。

详细内容将于复赛之前更新

 

https://tianchi.aliyun.com/competition/entrance/231714/information

 

https://code.aliyun.com/middlewarerace2019/adaptive-loadbalance

 

posted @ 2019-06-10 22:58  沧海一滴  阅读(852)  评论(0编辑  收藏  举报