package com.github.ltsopensource.core.loadbalance; import com.github.ltsopensource.core.cluster.Node; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * 主从模式: 譬如将JobClient和TaskTracker设置为这种负载均衡模式, * 那么总会去连接最老的一台JobTracker,从而达到主从模式的效果 * * @author Robert HG (254963746@qq.com) on 11/21/15. */ public class MasterSalveLoadBalance extends AbstractLoadBalance { @Override protected <S> S doSelect(List<S> shards, String seed) { if (shards.get(0) instanceof Node) { Collections.sort(shards, new Comparator<S>() { @Override public int compare(S left, S right) { return ((Node) left).getCreateTime().compareTo(((Node) right).getCreateTime()); } }); } return shards.get(0); } }