BRPC详解(五)——负载均衡之Round Robin

2020-05-25 00:00:00 选择 算法 服务器 负载均衡 步长

一、负载均衡概述

brpc中LoadBalancer从多个服务节点中选择一个节点,目前的实现见负载均衡。

Load balancer重要的是如何让不同线程中的负载均衡不互斥,解决这个问题的技术是DoublyBufferedData。DoublyBufferedData的相关内容已经在上一篇文章中提到了,感兴趣的小伙伴可以去翻看一下

被包养的程序猿丶:BRPC详解(四)——负载均衡之DoublyBufferedDatazhuanlan.zhihu.com

和NamingService类似,我们使用字符串来指代一个load balancer,在global.cpp中注册:

// Load Balancers


LoadBalancerExtension()->RegisterOrDie("rr", &g_ext->rr_lb); 


LoadBalancerExtension()->RegisterOrDie("wrr", &g_ext->wrr_lb); 


LoadBalancerExtension()->RegisterOrDie("random", &g_ext->randomized_lb); 


LoadBalancerExtension()->RegisterOrDie("la", &g_ext->la_lb); 


LoadBalancerExtension()->RegisterOrDie("c_murmurhash", &g_ext->ch_mh_lb); 


LoadBalancerExtension()->RegisterOrDie("c_md5", &g_ext->ch_md5_lb); 


LoadBalancerExtension()->RegisterOrDie("c_ketama", &g_ext->ch_ketama_lb); 


LoadBalancerExtension()->RegisterOrDie("_dynpart", &g_ext->dynpart_lb);

相关文章