# guerlab-loadbalancer **Repository Path**: guerlab_net/guerlab-loadbalancer ## Basic Information - **Project Name**: guerlab-loadbalancer - **Description**: 负载均衡 - **Primary Language**: Java - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 5 - **Created**: 2019-04-25 - **Last Updated**: 2025-05-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # guerlab-loadbalancer ![](https://img.shields.io/maven-central/v/net.guerlab.loadbalancer/guerlab-loadbalancer.svg)![](https://img.shields.io/badge/LICENSE-LGPL--3.0-brightgreen.svg) 负载均衡器实现。提供了hash、轮询、加权轮询、平滑加权轮询、随机、加权随机算法。 ## 算法规则 |名称|含义| |:--|--| |Hash|hash| |RoundRobin|轮询| |WeightRoundRobin|加权轮询| |SmoothWeightRoundRobin|平滑加权轮询| |Random|随机| |WeightRandom|加权随机| ## 使用说明 #### 工厂模式 ``` ILoadBalancer loadBalancer = LoadBalancerFactory.build("Hash"); loadBalancer.addTargets(Arrays.asList("t1", "t2", "t3"), true); loadBalancer.choose(); // loadBalancer.choose(new Object()); ``` #### 构造器方法 ``` ILoadBalancer loadBalancer = new HashLoadBalancer<>(); loadBalancer.addTargets(Arrays.asList("t1", "t2", "t3"), true); loadBalancer.choose(); // loadBalancer.choose(new Object()); ``` #### 设置对象权重 ``` loadBalancer.setWeight(target, 1); ``` ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request