| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package com.lightinit.hsdatashow.common;
- import com.lightinit.hsdatashow.json.pojo.ServerEntity;
- import org.apache.zookeeper.KeeperException;
- import org.apache.zookeeper.WatchedEvent;
- import org.apache.zookeeper.Watcher;
- import org.apache.zookeeper.ZooKeeper;
- import org.springframework.util.StringUtils;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Random;
- /**
- * Created by Mr.Yao on 2017/10/10.
- */
- public class BaseRemoteClient implements Watcher{
- private final Random random=new Random();
- List<String> list = new ArrayList<String>();
- private ZooKeeper zooKeeper=null;
- protected BaseRemoteClient(String node, String service){
- //RegisterServerList(node,service);
- }
- protected void RegisterServerList(String node, String service) {
- try {
- if (zooKeeper == null) {
- ThriftServerConfig config = new ThriftServerConfig();
- zooKeeper = new ZooKeeper(config.getHost() + ":" + config.getPort(), 30000, this);
- if (zooKeeper.exists("/thrift", false) != null) {
- if (zooKeeper.exists(String.format("/thrift/%s", node), false) != null) {
- if (zooKeeper.exists(String.format("/thrift/%s/%s", node, service), true) != null) {
- list = zooKeeper.getChildren(String.format("/thrift/%s/%s", node, service), true);
- }
- }
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- } catch (InterruptedException e) {
- e.printStackTrace();
- } catch (KeeperException e) {
- e.printStackTrace();
- }
- }
- public ServerEntity SelectServer(){
- ServerEntity item=new ServerEntity();
- if(list.size()<=0){
- item.setServerIp("127.0.0.1");
- item.setServerPort(9876);
- }else{
- String serverIp=list.get(random.nextInt(list.size()));
- if (StringUtils.isEmpty(serverIp)){
- item.setServerIp("127.0.0.1");
- item.setServerPort(9876);
- }else{
- String []infos= serverIp.split(":");
- if(infos.length==2) {
- item.setServerIp(infos[0]);
- item.setServerPort(Integer.valueOf(infos[1]));
- }else{
- item.setServerIp("127.0.0.1");
- item.setServerPort(9876);
- }
- }
- }
- return item;
- }
- @Override
- public void process(WatchedEvent watchedEvent) {
- }
- }
|